Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Universidad Carolina
Microcontroladores
Docente: Alfonso Ballesteros
void loop() {
digitalWrite(rojo,HIGH);
delay(100);
digitalWrite(amarillo,HIGH);
delay(100);
digitalWrite(verde,HIGH);
delay(100);
digitalWrite(azul,HIGH);
delay(100);
digitalWrite(naranja,HIGH);
delay(100);
digitalWrite(blanco,HIGH);
delay(100);
digitalWrite(rojo,LOW);
delay(100);
digitalWrite(amarillo,LOW);
delay(100);
digitalWrite(verde,LOW);
delay(100);
digitalWrite(azul,LOW);
delay(100);
digitalWrite(naranja,LOW);
delay(100);
digitalWrite(blanco,LOW);
delay(100);
}
Valeria Sosa IMC
Práctica 2. Semáforo
Dentro de esta práctica seguiremos trabajando con programación secuenciada, relizando
así un sistema tipo semáforo. Para esta práctica necesitaremos el siguiente material:
1. Arduino UNO
2. Protoboard
3. 1 LED rojo
4. 1 LED verde
5. 1 LED amarillo
6. 3 resistencias de 330Ω
7. Cables para conexión
Programación: Dentro del programa, realizar la siguiente programación:
//semaforo// Conexión: Utilizamos los pines digitales 13 (rojo),
const int rojo=13; 11 (amarillo) y 9 (verde). Se debe de tener en cuenta
const int amarillo=11; la polaridad en led´s: patita corta a negativo y pata
const int verde=9; larga a positivo y se conectan al pin del Arduino
void setup () { correspondiente, como se muestra en la imagen.
pinMode(rojo,OUTPUT);
pinMode (amarillo, OUTPUT);
pinMode (verde, OUTPUT);
digitalWrite (rojo, LOW);
digitalWrite (amarillo, LOW);
digitalWrite (verde, LOW);
}
void loop ( ) {
digitalWrite (rojo, HIGH);
delay (1000);
digitalWrite (rojo, LOW);
digitalWrite (verde, HIGH);
delay (1000);
digitalWrite (verde, LOW);
digitalWrite (amarillo, HIGH);
delay (1000);
digitalWrite (amarillo, LOW);
}
Valeria Sosa IMC
digitalWrite(LED,LOW);
}
}
Práctica 5. Servomotor
Durante las próximas prácticas se realizarán diversas actividades con un servomotor. El
servomotor es un actuador de tipo rotativo o motor que nos permite realizar controles
precisos en cuanto a posiciones angulares.
El material para realizar la práctica es el siguiente:
1. Arduino UNO
2. Protoboard
3. 1 Servomotor
4. Cables para conexión
Programación: Dentro del programa, realizar la siguiente programación:
#include <Servo.h>
Servo servo1;
int PINSERVO=2;
int PULSOMIN=900;
int PULSOMAX=2100;
void setup() {
servo1.attach(PINSERVO,PULSOMIN,PULSOMAX);
}
void loop () { Conexión: Utilizamos pin digítal 2(servo), por lo que lo conectamos
servo2.write(0); en salida 2 de arduino, cable rojo de servo va a positivo y café a
delay(2000); negativo ambos al de protoboard, GND de tarjeta Arduino a
servo2.write(180); negativo de protoboard y 5V a positivo, como se muestra en la
delay(2000); imagen.
}
Valeria Sosa IMC
void setup() {
servo1.attach (PINSERVO, PULSOMIN, PULSOMAX);
pinMode(LEDROJO,OUTPUT);
pinMode(LEDVERDE,OUTPUT);
}
void loop() {
if(digitalRead) {
servo1.write(0);
digitalWrite(LEDROJO, HIGH);
delay(3000);
digitalWrite(LEDROJO, LOW);
}
if(digitalRead) {
servo1.write(180);
Valeria Sosa IMC
digitalWrite(LEDVERDE, HIGH);
delay(3000);
digitalWrite(LEDVERDE, LOW);
}
}
Conexión: Utilizamos pin digítal 2 (servo), 3 (led rojo), 4(led verde) conectamos a
correspondientes, cable rojo de servo va a positivo y café a negativo ambos al de
protoboard, GND de tarjeta Arduino a negativo de protoboard y 5V a positivo, como se
muestra en a imagen.
Valeria Sosa IMC
Conexión: Utilizamos pines digitales 2(a), 3(b), 4(c), 5(d), 6(e), 7(f), 8(g), establecemos
conexión en sus correspondientes, GND a negativo de display, salida derecha inferior a
5V, como se muestra en a imagen.
Valeria Sosa IMC
do {
estado = digitalRead(pin);
if(estado != estadoAnterior) {
contador = 0;
estadoAnterior = estado;
}
else {
contador = contador +1;
}
delay(1);
} while(contador < tiempoAntirebote);
return estado;
}
void actualizarNumero() {
switch(cuenta) {
case 0:
digitalWrite (a, HIGH);
digitalWrite (b, HIGH);
digitalWrite (c, HIGH);
digitalWrite (d, HIGH);
digitalWrite (e, HIGH);
digitalWrite (f, HIGH);
digitalWrite (g, LOW);
break;
case 1:
digitalWrite (a, LOW);
digitalWrite (b, HIGH);
digitalWrite (c, HIGH);
Valeria Sosa IMC
case 8:
digitalWrite (a, HIGH);
digitalWrite (b, HIGH);
digitalWrite (c, HIGH);
digitalWrite (d, HIGH);
digitalWrite (e, HIGH);
digitalWrite (f, HIGH);
digitalWrite (g, HIGH);
break;
case 9:
digitalWrite (a, HIGH);
digitalWrite (b, HIGH);
digitalWrite (c, HIGH);
digitalWrite (d, LOW);
digitalWrite (e, LOW);
digitalWrite (f, HIGH);
digitalWrite (g, HIGH);
break;
}
}
void setup() {
pinMode (a, OUTPUT);
pinMode (b, OUTPUT);
pinMode (c, OUTPUT);
pinMode (d, OUTPUT);
pinMode (e, OUTPUT);
pinMode (f, OUTPUT);
pinMode (g, OUTPUT);
pinMode (botonIncremento, INPUT);
pinMode (botonDecremento, INPUT);
Valeria Sosa IMC
void loop() {
estadoBotonIncremento = digitalRead (botonIncremento);
if (estadoBotonIncremento != estadoBotonAnteriorIncremento) {
if(antirebote(botonIncremento)) {
cuenta++;
if(cuenta > 9){
cuenta =9;
}
}
}
estadoBotonAnteriorIncremento = estadoBotonIncremento;
LiquidCrystal lcd(7,6,5,4,3,2);
void setup() {
lcd.begin(16,2);
}
void loop() {
lcd.setCursor(0,0);
lcd.print("Universidad");
lcd.setCursor(0,1);
lcd.print("Carolina");
lcd.display();
delay(1000);
lcd.noDisplay();
delay(500);
}
Conexión: Utilizamos pines digitales 7 (RS), 6(E), 5(D4), 4(D5), 3(D6), 2(D7),
establecemos conexión en sus correspondientes. Salida VSS de LCD a negativo de proto,
VDD a positivo de proto, V0 con resistencia 2KΩ a negativo de proto, RW negativo de proto.
Salida A de LCD con resistencia de 220Ω a positivo de proto, K a negativo de proto, GND
a negativo y 5V a positivo de proto, como se muestran en las imágenes.
Valeria Sosa IMC
Valeria Sosa IMC
}
Valeria Sosa IMC
Valeria Sosa IMC
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
delay(2);
Valeria Sosa IMC
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
delay(2);
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
delay(2);
}
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
delay(2000);
}
Valeria Sosa IMC