Laboratorio 2
Laboratorio 2
1. Diseñe e implemente un SKETCH que lea el valor de una entrada analógica y lo muestre en el
monitor serial del IDE de Arduino.
1.1.Diagrama de flujo
INICIO
a = lecturaAnalógica( A0 )
a
1.2.Scketch
void setup() {
Serial.begin(9600);
} FIN
void loop() {
int a=analogRead(A0);
Serial.println(a);
delay(100);
}
1.3.Simulación en Proteus
2. Diseñe e implemente un SKETCH que realice la comparación de una de las señales de entrada
analógica “A1” de la tarjeta Arduino (procedente de un sensor) con un valor constante (en este
caso 300). En función del resultado de la comparación se activará la salida PIN 13 de Arduino (1
si A1 > 300 y 0 en caso contrario)
2.1.Diagrama de flujo
INICIO
a = lecturaAnalógica( A1 )
NO SI
a > 300
2.2.Scketch
void setup() { FIN
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop() {
int a=analogRead(A1);
Serial.println(a);
if (a>300){digitalWrite(13,HIGH);}
else{digitalWrite(13,LOW);}
delay(400);
}
2.3.Simulación en Proteus
3. Diseñe e implemente un SKETCH que envíe valores de 0 a 255 a una de las salidas PIN3
primero en sentido ascendente y después de 1 segundo en sentido descendente.
3.1.Diagrama de flujo
INICIO
Esperar 40ms
Esperar 1s
Esperar 40ms
Esperar 1s
3.2.Scketch
Void setup() {
Serial.begin(9600);
pinMode(3,OUTPUT); FIN
}
void loop() {
for(int i=0;i<51; i++){
analogWrite(3,i*5);
delay(40);
Serial.println(i*5);
}
delay(1000);
for(int i=51;i>0; i--){
analogWrite(3,i*5);
delay(40);
Serial.println(i*5);
}
delay(1000);
}
4. Diseñe e implemente un SKETCH que envíe valores de 0 a 255 a una de las salidas PIN9 pero
esta vez controlado desde una entrada analógica(A0) donde se conecta un potenciómetro.
4.1.Diagrama de flujo
INICIO
a = lecturaAnalógica( A1 )
b = a/4
4.2.Scketch
FIN
void setup() {
Serial.begin(9600);
pinMode(9,OUTPUT);
}
void loop() {
int a =analogRead(A0);
int b =a/4;
Serial.println(b);
analogWrite(9,b);
delay(1);
}
4.3. Simulación en Proteus
5. Control de un led RGB, Un diodo led RGB realmente es un dispositivo electrónico con 3 leds de
diferentes colores en la misma cápsula. Los LED's son R(Red) G(Green) , B (Blue) es decir Rojo,
Verde y Azul. Hay de cátodo comúm (-) o de ánodo común (+). Se necesitan 3 pins de salida en
Arduino para poder activar cada uno de los LED: D8 Rojo, D9 Verde y D10 Azul
5.1.Diagrama de flujo
INICIO
Pin8=encendido
Esperar 300ms
Pin8= apagado
Pin 9=encendido
Esperar 300ms
Pin9= apagado
Pin10= encendido
Esperar 300ms
Pin10=apagado
FIN
5.2.Scketch
void setup() {
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
}
void loop() {
digitalWrite(8,HIGH);
delay(300);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
delay(300);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
delay(300);
digitalWrite(10,LOW);
}
5.3.Simulación en Proteus
6. Diseñe e implemente un SKETCH que lea el valor de una entrada analógica y lo muestre en el
monitor serial del IDE de Arduino.
6.1.Diagrama de flujo
INICIO
a = lecturaAnalógica( A0 )
a
6.2.Scketch
void setup() {
Serial.begin(9600);
} FIN
void loop() {
int a=analogRead(A0);
Serial.println(a);
delay(100);
}
6.3.Simulación en Proteus
7. Realice e implemente un SKETCH, el cual deberá generar los colores rojo, amarillo, verde,
rosado, naranja, celeste, violeta, azul, verde claro en un led RGB.
7.1.Scketch
void setup() {
Serial.begin(9600);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
}
void loop() {
analogWrite(8, 255);
analogWrite(9, 0);
analogWrite(10, 0);
Serial.println("rojo");
delay(1000);
analogWrite(8, 255);
analogWrite(9, 255);
analogWrite(10, 0);
Serial.println("amarillo");
delay(1000);
analogWrite(8, 0);
analogWrite(9, 255);
analogWrite(10, 0);
Serial.println("verde");
delay(1000);
analogWrite(8, 255);
analogWrite(9, 0);
analogWrite(10, 200);
Serial.println("rosado");
delay(1000);
analogWrite(8, 255);
analogWrite(9, 100);
analogWrite(10, 12);
Serial.println("naranja");
delay(1000);
analogWrite(8, 0);
analogWrite(9, 170);
analogWrite(10, 228);
Serial.println("celeste");
delay(1000);
analogWrite(8, 255);
analogWrite(9, 0);
analogWrite(10, 255);
Serial.println("violeta");
delay(1000);
analogWrite(8, 0);
analogWrite(9, 0);
analogWrite(10, 255);
Serial.println("azul");
delay(1000);
}
7.2.Simulación en Proteus
Cada canal se puede configurarse para ser capturador de entrada, comparador de salidas,
o alineación de flancos PWM. Estos tipos de configuración se discutirán en la sección de
modos de operación.
El módulo puede ser configurado como buffer o como alineación central de la modulación
del ancho de pulso (CPMW por sus siglas en inglés).
El timer puede ser modificado para usarse con una escala predeterminada del bus clock,
un clock fijo o un clock externo:
1. La preescala se define dividiendo el clock del bus entre 1, 2, 4, 8, 16, 32, 64 o 128. El bus
clock al que opera el microcontrolador es de 1MHz.
2. El clock fijo es sincronizado con el bus clock mediante un circuito sincronizador.
3. Para el clock externo, el pin puede compartirse con un pin de un canal o de cualquier otra
entrada, por lo tanto hay que tener cuidado al configurar este pin.
Fuente:http://wikitronica.labc.usb.ve/index.php/PWM_(Modulaci
%C3%B3n_de_Ancho_de_Pulso)#Caracter.C3.ADsticas
Entrada Salida
Número de canales Número de bits (resolución)
Tipo de señal (tensión o corriente) Código de salida (binario, Decimal
Codificado en binario)
Margen de valores (máximo y mínimo) Formato (serie, paralelo)
Polaridad (unipolar, bipolar) Velocidad de salida (bit rate o tasa de
bits)
Tensión de referencia (interna o externa, Niveles de tensión de salida y Existencia
exactitud) de latches (circuito electrónico biestable
asíncrono usado para almacenar
información en sistemas lógicos
digitales).
Las salidas pmw que posee el Arduino es de mucha ayuda en el momento de controlar
circuitos que lo requieran, siendo estas capaces de simular una salida análoga mediante
impulsos digitales lo cual como en el ejemplo 3 salida pmw controlan el color del led RGB, sin
embargo los resultados en proteus 8.1 no son acertadas, lo cuál puede provocar una variación
al momento de ponerlo en prueba físicamente.