Electronica Conceptos Basicos
Electronica Conceptos Basicos
DIODOS
DIODO
LED AZUL
https://www.youtube.com/watch?v=KzTm5UmF0Xk&ab_channel=Veritasiumenespa%C3%B1ol
Documentacion -> programing -> lenguaje reference AQUÍ ESTAN TODOS SUS
METODOS TODO LO QUE NECESITAS
VARIABLES
HOLA MUNDO ARDUINO
CASTEAR
RESTO
Para ahorrar palabras a la hora de escribir:
Ejercicios
COMPARADORES
Ejemplo:
Con los numeros aleatorios hay que poner una semilla el randomSeed para que la secuencia de numeros no se repita
cada vez que reiniciemos. Siempre se pone en setup() el randomSeed(analogRead(A0));
Ejercicio num aleatorio entre rangos ver cual se repite más.
Par e Impar
WHILE
Dos leds:
Con un blink -> parpadeo:
DO WHILE
EJEMPLO:
SWITCH
Ejercicio HACER UN DADO DE 6 CARAS CON SWITCH:
const int led1 = 3;
const int led2 = 2;
const int led3 = 4;
const int boton = 7;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(boton,INPUT);
}
void loop() {
int estadoBonton = 0;
int numA;
//genero numero random de 1 a 6
numA= random(1,7);
// compruebo si esta pulsado
estadoBonton = digitalRead(boton);
if ( estadoBonton == true){
switch(numA){
case 1:
Serial.println("numero 1 , salta y bebe");
digitalWrite(led1, HIGH);
delay(5000);
digitalWrite(led1,LOW);
break;
case 2:
Serial.println("numero 2 , bebe boca abajo");
digitalWrite(led2, HIGH);
delay(5000);
digitalWrite(led2,LOW);
break;
case 3:
Serial.println("numero 3, bebe si tiene herman@s");
digitalWrite(led3, HIGH);
delay(5000);
digitalWrite(led3,LOW);
break;
case 4:
Serial.println("numero 4, bebe si lleva pantalon");
break;
case 5:
Serial.println("numero 5, bebe si el dni es par");
break;
case 6:
Serial.println("numero 6, bebe si el dni es impar");
break;
default:
Serial.println("numero incorrecto");
}else{
Serial.println("boton no pulsado");
delay(1000);
}
}
Código del profe
BUCLE FOR:
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
delay(5000);
}
PIN ANALOGICO, HAY 16 ENTRADAS ANALOGICAS
PWM -> CREA SEÑALES DIGITALES, HACE CREER QUE LLEGA UNA SEÑAL MENOR A LA QUE ES
PRACTICA DIVISOR DE TENSIONES
Potenciometro-> es como la resistencias pero aquí puedo cambiar el valor.
JOYSTICK
CONVERSOR DE DIGITAL A ANALOGICO
PWM ->
regla de 3 para sacar el V que necesito.
Map(x,1,y,2);
1023 -> 5V
0 -> 0V
Map(2.4 , 0 , 5 , 1023);
El led RGB ponemos la patilla larga al negativo ( a tierra), las 3 patillas que quedan van cada una con una resistencia
le pongo 220 mk para que luzca mas, y de cada resistencia la enchufo a cada una de las entradas.
El Joystick tiene que conectarse a + otro a - , otro a una entrada A1 y el otro a otra entrada A2.
El potenciómetro no tiene resistencia, 3 patillas, una + otra al - y otro a la entrada A0 por ejemplo.
**** ENTORNO AYUDA TECLADO - Shift + alt -> crea varias líneas para escribir a la vez.
TABLA RESISTENCIAS
Se calcula cada línea con su columna, eje: col 1 el rojo es 2 , col 2 el naranja es 3, col 3 el lila es 7 -> 127 * 4ª col aquí
sería el negro entonces es 237 * 1 = 237.
COLORES LA LUZ:
Para hacer un color amarillo hay que poner la cantidad del rojo y la del verde para producir amarillo en un led RGB.
El blanco tiene todos los colores a tope, es la frecuncia mas alta, las tiene todas.
BAUD RATE -> Símbolos por segundo que puedo enviar. Simbolo partido por segundo.
SENSOR DE LUZ
Ecuaciones para sacar los valores de la resistencia.
Ejercicio
Led enfrente del LDR y cortamos la luz con una tarjeta.
delay(5000);
// saco la media
int valorMinTotal = valorMin / 10;
Serial.println("\t***** *****\n");
Serial.println("------\t El valor minímo del LDR es : \t------");
Serial.println("\t " + (String)valorMinTotal);
valorMinTotal = 0;
delay(500);
valorMinTotal = 0;
valorMxT = 0;
}
void loop() {
CODIGO DEL PROFESOR SACAR EL THRESHOLD -> Punto medio entre maxima y
minima
const int led = 2;
int valorMaxT = 0;
int valorMinTotal = 0;
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
digitalWrite(led, HIGH);
//calibracion de la luz del ldr
Serial.println("\t Calibrando la luz : ");
//cuenta atras eswto es para que quede bonito
for (int i = 9; i > 0; i--) {
Serial.print(" \t en --- " + (String)i + " , ");
}
Serial.println(" ");
Serial.println("\t cogiendo los datos :\n");
int valorMx = 0;
// meto en la variable valorMx las 10 lecturas para sacar despues la media
for (int i = 0; i < 10; i++) {
valorMx = valorMx + analogRead(A0);
}
delay(500);
// hago la media de las 10 lecturas
valorMaxT = valorMx / 10;
Serial.println("\t***** *****\n");
Serial.println("------\t El valor maximo del LDR es : \t------");
Serial.println("\t " + (String)valorMaxT + "\n");
delay(5000);
void loop() {
}
Aquí el botón directo al led sin código
PASIVO->tapa verde, tienes que tratarlo como un altavoz tonto, tu tienes que darle el tono. Con un generador de
tonos.
Amplificador y altavoces
Divisor de tensión
readString()
CON ReadString
EJERCICIO SECUENCIADOR DE LUCES
Para que no entre en el default hay que poner abajo a la derecha la opción “sin ajuste de línea” porque sino nos mete
la letra mas un intro entonces se genera un espacio en blanco y es como si además de la letra pusieses un espacio en
blanco.
FUNCIONES ARDUINO CODIGO SERIAL. …. Arduino.cc
Serial.setTimeout(lomg milliseconds);
Serial.read();
Serial.readString();
Serial.parseInt();
Serial.parseFloat();
Serial.setTimeout(long milliseconds); -> si pasado un milisegundo deja de intentar realizar algo. Se utiliza para leer
cadenas de Strings. Este timeout espera este tiempo para leer la cadena al ser tipo long puedo poner una cadena
larga.
Serial.readStriingUntil(char terminador) -> lee el string hasta…. Lo que le digas. Por ejem: hasta una coma.
Serial.parseInt() -> Lee el buffer y muestra desde el primer digito que encuentre entero.
Serial.parseFloat() -> lee el buffer hasta que encuentra un numero decimal (con punto).
el d1 y d2 no se utilizan
https://docs.arduino.cc/learn/electronics/lcd-displays/
Es el código de ejemplo del Arduino esta en examples->liquidCristal->Hello World!
PARAMETROS
Parametros de entrada
EJERCICIOS
EJERCICIOS
Ejercicio realizado por el profesor
Ejemplos : todo en una función, otra manera usando un switch case. Acordarnos de ramdonseed(analogRead(A0)),
poner la semilla.
DISPLAY 7 SEGMENTOS
Permite poner números del 0 al 9 y alguna letra. por cada pin del led se
conecta una resistencia. 5011AS -> POSITIVO COMUN ‘ANODO’; 555BS->NEGATIVO COMUN ‘CATODO’.
#define g 11
#define d1 A1
#define d2 A2
#define d3 A3
#define d4 A4
void setup() {
pinMode(g, OUTPUT);
pinMode(d1, OUTPUT);
pinMode(d2, OUTPUT);
pinMode(d3, OUTPUT);
pinMode(d4, OUTPUT);
digitalWrite(d1, HIGH);
digitalWrite(d2, HIGH);
digitalWrite(d3, HIGH);
digitalWrite(d4, HIGH);
digitalWrite(g, HIGH);
delay(1000);
}
void loop() {
digitalWrite(d1, LOW);
digitalWrite(d4, HIGH);
delay(200);
digitalWrite(d2, LOW);
digitalWrite(d1, HIGH);
delay(200);
digitalWrite(d3, LOW);
digitalWrite(d2, HIGH);
delay(200);
digitalWrite(d4, LOW);
digitalWrite(d3, HIGH);
delay(200);
}
1. en el bucle void setup, hemos aplicado una tensión a los cuatro dígitos del indicador
LED para que no se enciendan inicialmente al arrancar el programa;
2. en el bucle void loop iluminamos los dígitos uno a uno (la iluminación se realiza en
modo BAJO), mientras que el segmento G permanece siempre iluminado.
Controlador I2C
Está conectado por un lado al Arduino y por el otro al display , lcd, 7segmentos….. Ahorra cables.
Módulo de pantalla led.
Int ruedas;
int añoCompra;
String matricula; }
Ahora creamos objetos de tipo coche ->
Métodos de clase; se pueden crear funciones dentro de la clase. Y para llamar a esa función ->
ejercicio
FUNCIONES PARA MEDIR TIEMPO millis(); micros();
Sacamos asi el tiempo desde que arranca arduino procesos por segundo, para mas precision aun utilizamos micros()
->
Métodos Get (obtener)me devuelve el valor y set (cambiar) para cambiar valor