PRACTICAS DE ARDUINO (mega 2560)
POTENCIOMETRO
El potenciómetro
es un dispositivo electromecánico que consta de una resistencia de
valor fijo sobre la que se desplaza un contacto deslizante, el
cursor, que la divide eléctricamente.
Conclusión:
En esta práctica
se utilizo un potenciómetro y dos leds al utilizar el potenciómetro bajamos el
voltaje y lo subimos con el potenciómetro y se reflejaba en el led se
configuraron las salidas del potenciómetro paraqué el potenciómetro regule el
voltaje y sea el que le asigne la salida hacia al led.
LISTADO
DE COMPONENTES:
- 1 Potenciómetro de 10kΩ
- 2 Diodo LED
- Varios cables
CODIGO:
IMAGEN DEL CIRCUITO:
int potPin=A2;
int ledPin=13;
int val=0;
void setup()
{
pinMode(ledPin,OUTPUT);
}
void loop()
{
val=analogRead(potPin);
digitalWrite(ledPin,HIGH);
delay(val);
digitalWrite(ledPin,LOW);
delay(val);
}
CODIFICADOR
Se trata de encender y apagar 3 LEDs colocados en las salidas 23,24,26,28,30 Y 32 (PIN23, PIN24,PIN26,PIN28,PIN30 Y
PIN32 ) con una cadencia de 200 ms. Las variables asignadas a cada
led son ledPin1, ledPin2 y ledPin3.
Conclusión:
En esta práctica
utilizamos tres lets, tres resistencias y cables, configuramos la salida para
cada led de igual manera lo único que cambia de cada led es el delay que es el
tiempo asignado para cada led en este caso cada led tiene diferente delay para
que uno prenda más tiempo y que también solo uno parpadee antes de pasar al
siguiente led esto es casi lo mismo como están configurado los semáforos.
LISTADO DE
COMPONENTES:
- 3 OHMS
- 3 LET’S
CODIGO:
IMAGEN DEL CIRCUITO:
int ledPin1=6;
int ledPin2=7;
int ledPin3=8;
void setup()
{
pinMode(ledPin1,
OUTPUT);
pinMode(ledPin2,
OUTPUT);
pinMode(ledPin3,
OUTPUT);
digitalWrite(ledPin1,
LOW);
digitalWrite(ledPin2,
LOW);
digitalWrite(ledPin3,
LOW);
}
void loop()
{
digitalWrite(ledPin1,
HIGH);
delay(200);
digitalWrite(ledPin1,
LOW);
digitalWrite(ledPin2,
HIGH);
delay(200);
digitalWrite(ledPin2,
LOW);
digitalWrite(ledPin3,
HIGH);
delay(200);
digitalWrite(ledPin3,
LOW);
}
DECODIFICADOR
Un decodificador o descodificador es un circuito combinacional, cuya función es inversa a la del codificador, esto es, convierte un código binario de entrada (natural,BCD , etc.) de N bits de entrada y M líneas de salida
Conclusión:
En la práctica siguiente utilizamos mas
led que en este caso son seis leds porque no utilizamos ningún display por eso
utilizamos seis leds que son los números cada led se le asigna un numero y así
es como u utilizamos el decodificador.
LISTADO DE
COMPONENTES:
6 led
6 ohms
CODIGO:
int
pin23=23;
int pin24=24;
int pin24=24;
int
pin26=26;
int
pin28=28;
int
pin30=30;
int
pin32=32;
int
timer=200;
void
setup()
{
pinMode(pin23,OUTPUT);
pinMode(pin24,OUTPUT);
pinMode(pin26,OUTPUT);
pinMode(pin28,OUTPUT);
pinMode(pin30,OUTPUT);
pinMode(pin32,OUTPUT);
}
void
loop()
{
digitalWrite(pin23,HIGH);
delay(timer);
digitalWrite(pin23,LOW);
delay(timer);
digitalWrite(pin24,HIGH);
delay(timer);
digitalWrite(pin24,LOW);
delay(timer);
digitalWrite(pin26,HIGH);
delay(timer);
digitalWrite(pin26,LOW);
delay(timer);
digitalWrite(pin28,HIGH);
delay(timer);
digitalWrite(pin28,LOW);
delay(timer);
digitalWrite(pin30,HIGH);
delay(timer);
digitalWrite(pin30,LOW);
delay(timer);
digitalWrite(pin32,HIGH);
delay(timer);
digitalWrite(pin32,LOW);
delay(timer);
digitalWrite(pin30,HIGH);
delay(timer);
digitalWrite(pin30,LOW);
delay(timer);
digitalWrite(pin28,HIGH);
delay(timer);
digitalWrite(pin28,LOW);
delay(timer);
digitalWrite(pin26,HIGH);
delay(timer);
digitalWrite(pin26,LOW);
delay(timer);
digitalWrite(pin24,HIGH);
delay(timer);
digitalWrite(pin24,LOW);
delay(timer);
}
CICUITOS ARITMETICOS
DEFINICIÓN
Estos tienen como objetivo realizar operaciones aritméticas en formato binario o BCD, punto fijo o punto flotante. Dependiendo de la aplicación se utilizarán unos u otros.
Son dispositivos MSI que pueden realizar operaciones aritméticas (suma, resta, multiplicación y división) con números binarios. De todos los dispositivos, nos centraremos en los comparadores de magnitud, detectores y generadores de paridad, sumadores y ALU’s; (El diseño MSI surgió gracias a los avances en la tecnología de integración. Estos avances abarataron los costes de producción, y permitieron el desarrollo de circuitos más generales.)
EJERCICIO
En este ejercicio se realizo un circuito donde presionando un botón se realizara una función aritmética, la suma y en el display será representada de manera binaria. La suma va del 0 al 9 y se cicla.
MATERIALES
1 Display de 7 dígitos (cátodo común)
1 Resistencia 10KO
Arduino Mega 2560
1 Push botón
CIRCUITO
CÓDIGO
int pinA = 11;
int pinB = 10;
int pinC= 9;
int pinD = 8;
int pinE = 7;
int pinF = 6;
int pinG = 5;
int ANODOCOMUN = 0;
int CATODOCOMUN = 1;
int anterior = 0;
int estadoS = 0;
int estadoR = 0;
int number = 0;
void setup()
{
pinMode(pinBtnS, INPUT);
pinMode(pinA, OUTPUT);
pinMode(pinB, OUTPUT);
pinMode(pinC, OUTPUT);
pinMode(pinD, OUTPUT);
pinMode(pinE, OUTPUT);
pinMode(pinF, OUTPUT);
pinMode(pinG, OUTPUT);
}
void writeNumber(int number, int type = 1, int pinA = 11, int pinB = 10, int pinC = 9, int pinD = 8, int pinE = 7, int pinF = 6, int pinG = 5)
{
switch(number)
{
default:
case 0:
if(type == 0)
{
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, HIGH);
}
break;
case 1:
if(type == 0)
{
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
}
break;
case 2:
if(type == 0)
{
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, LOW);
}
break;
case 3:
if(type == 0)
{
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, LOW);
}
break;
case 4:
if(type == 0)
{
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
}
break;
case 5:
if(type == 0)
{
digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
}
break;
case 6:
if(type == 0)
{
digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
}
break;
case 7:
if(type == 0)
{
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
}
break;
case 8:
if(type == 0)
{
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
}
break;
case 9:
if(type == 0)
{
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
}
else
break;
}
}
void loop()
{
estadoS = digitalRead(pinBtnS);
if(estadoS && anterior == 0)
{
number++;
if(number == 10)
number = 0;
}
anterior = estadoS;
writeNumber(number, ANODOCOMUN, pinA, pinB, pinC, pinD, pinE, pinF, pinG);
}