Está en la página 1de 29

WorkSheet Arduino

Didactic Unit 2
Arduino and its possibilities
Session 2
CONTENT ACHIEVEMENT

Arduino Recognize the structure of The Board ARDUINO UNO, its


structure benefits and principals characteristics.

Arduino Understand the Arduino programming language and


programming develop programs for their performance.

Projects in Build electronic projects with Arduinos that can solve


Arduino different technologic problems.

Group # Course Students:


Arduino UNO Board Structure
 A
r
d
u
i
n
o
UNO es la plataforma más extendida y la primera que salió al mercado, por ello nos
podemos basar en esta. Todas las características de esta placa estarán implementadas en
casi todas las placas restantes, a excepción de algunas que ya veremos. Se basa en un
microcontrolador Atmel ATmega320 de 8 bits a 16Mhz que funciona a 5v. 32KB son
correspondientes a la memoria flash (0,5KB reservados para el bootloader), 2KB de SRAM
y 1KB de EEPROM. En cuanto a memoria es una de las placas más limitadas, pero no por
ello resulta insuficiente para casi todos los proyectos que rondan la red. Las salidas pueden
trabajar a voltajes superiores, de entre 6 y 20v pero se recomienda una tensión de trabajo
de entre 7 y 12v. Contiene 14 pines digitales, 6 de ellos se pueden emplear como PWM. En
cuanto a pines analógicos se cuenta con hasta 6. Estos pines pueden trabajar con
intensidades de corriente de hasta 40mA.
Arduino Program Interface & Structure
Experiment #1
Hola Mundo & LED Blink
Code:
// Parpadeo del LED

void setup() {

pinMode(13,OUTPUT); // declaramos pin 13 como salida

Serial.begin(9600);

Serial.println("Hola mundo");

void loop() {

digitalWrite(13,HIGH); // put your main code here, to run repeatedly:

delay (1000); // esperamos 1 segundo

digitalWrite (13,LOW);

delay(1000);

}
Circuit

Pasos
1. Monte el circuito
2. escriba el código en el programa Android
3. guarde el programa con un nombre fácil de recordar.

4 compile el código
5 si hay algún error corrija
6 conecte el Android al PC

7 verifique el puerto
8 cargue el programa al ARDUINO
9 Compruebe funcionamiento

Conclusiones Experimento 1

Preguntas experimento 1
 ¿Para qué sirve la doble barra oblicua? ( //)

 ¿Qué hace el comando delay?

 ¿Para qué sirve el punto y coma al final de los comandos?

 ¿Para qué sirven los corchetes en el programa { }?


 ¿Para qué sirve void loop y void setup?

 ¿Para qué sirve pinMode?

 ¿Para qué sirve el comando digitalWrite?

 ¿Qué hace el botón reset?

 ¿Para que funcione el programa siempre debe estar conectado al computador?

Pegue una foto del circuito


Experimento 2 Semáforo (Traffic Light) Code ( First part):
//Semaforo Doble
// DEFINICIÓN DE CONSTANTES
int rojo1 = 9;
int amar1 = 7;
int verde1 = 4;

int rojo2 = 10;


int amar2 = 6;
int verde2 = 2;

void setup() {
pinMode(rojo1,OUTPUT);
pinMode(amar1,OUTPUT);
pinMode(verde1,OUTPUT);
pinMode(rojo2,OUTPUT);
pinMode(amar2,OUTPUT);
pinMode(verde2,OUTPUT); // definimos todos los pines anteriores como salidas

void loop() {
digitalWrite(verde1, HIGH); //encendemos el verde del 1 y el rojo del 2
digitalWrite(rojo2, HIGH);
delay(2000); // asi durante 2 segundos

digitalWrite(verde1, LOW); //apagamos el verde del 1 y encendemos y apagamos el amarillo 1 5 veces (1 segundo en total)
digitalWrite(amar1, HIGH);
delay(200);
digitalWrite(amar1, LOW);
delay(200);
digitalWrite(amar1, HIGH);
delay(200);
digitalWrite(amar1, LOW);
delay(200);
digitalWrite(amar1, HIGH);
delay(200);
digitalWrite(amar1, LOW);
digitalWrite(rojo1, HIGH); // encendemos el rojo del 1 y apagamos el rojo del 2, encendemos el verde del 2 y esperamos 2 segundos

digitalWrite(rojo2, LOW);

digitalWrite(verde2, HIGH);

delay(2000);

digitalWrite(verde2, LOW);// apagamos el verde del semaforo 2 y hacemos con el amarillo lo mismo que hicimos en el semáforo 1

digitalWrite(amar2, HIGH);

delay(200);

digitalWrite(amar2, LOW);

delay(200);

digitalWrite(amar2, HIGH);

delay(200);

digitalWrite(amar2, LOW);

delay(200);

digitalWrite(amar2, HIGH);

delay(200);

digitalWrite(amar2, LOW);

Code……
digitalWrite(rojo1, LOW); // apagamos el rojo del semaforo 1, en este momento se completa la secuencia y se puede recomenzar encendiendo el
verde del 1

}
Circuit:

Conclusiones experimento 2
Pegue una imagen de los miembros del equipo trabajando

¿Considera que cuando cada miembro del equipo hace una función distinta, todos pueden
aprender?

Indique que roles están teniendo los miembros del equipo ( p.e quien lidera, quien programa,
quienes están cableando el circuito, etc)

¿En que se han basado para saber quién se encarga de estos roles?
Preguntas experimento 2
 ¿Porque es necesario escribir tantas veces delay?

 ¿Que podría arreglarse en el código para mejorar el semáforo?

Experimento 3 2 Buttons in LED control (AND Gate)

En este experimento usaremos el estado de dos botones cuando ambos estén presionados,
el LED encenderá, de resto no lo hará, (opera el mismo principio de la compuerta AND)
Code

Circuit
Conclusiones experimento 3

Preguntas

 ¿ Para qué sirven int ( integer) if, else y &&?

Foto del circuito:


Experimento 4
Atenuación del brillo de un LED

En este experimento usaremos una salida Análoga del ARDUINO


Para aumentar y disminuir la intensidad de un LED, tal como acontece en las luces
navideñas
Code:
//programa que secuencialmente aumenta o diminuye el brillo de un LED

//constantes

int led=3;//Ponemos que el led se conectara al pin 3.

//variables

int brillo; //variable para valor del brillo

void setup() {

pinMode(3,OUTPUT);//Decimos que el pin 3 es una salida(Da informacion al led).

void loop(){

for(brillo =0; brillo < 256; brillo++) { //Creamos un bucle for, para que el valor i vaya aumentando progresivamente hasta llegar a 255.

//Se pone hasta 256, porque arduino solo toma una cuarta parte de 1023, que es 256.

analogWrite(led, brillo);//Decimos que es una salida analogica por lo que puede cambiar los voltajes que salen del pin entre 0(Minimo) y
255(maximo).

delay(12);//Cada ves que sube un valor de i tarda 12 milisegundos, y como tiene que hacer 256, tardara aproximadamente 3 segundos en
encenderce completamente.

for(brillo=255; brillo >= 0; brillo--){//Creamos ahora un bucle de for alcontrario que el anterior para que descienda la luz del led(la i)
progresivamente hasta apagarse.

analogWrite(led, brillo);

delay(12);

}
Circuit

Conclusión:

¿Porque debe usarse una salida análoga y no digital?

¿Cuál es la función de la instrucción for?


Experimento 5A uso servomotor
En esta primera parte conectaremos un servomotor al ARDUINO, Un servomotor es un
motor eléctrico que puede ser controlado tanto en velocidad como en posición.
Código
#include <Servo.h>

// el # include es para incluir librerias , (conjunto de funciones y procedimientos extras)

//practica Servomotor Arduino

Servo miServo;

void setup(){
Circuito
Practica 5B control del servo con el teclado del PC
Mediante este programa aumentaremos o disminuiremos el ángulo del servomotor con las
teclas a para aumentar y z para disminuir, recordemos que el servo tiene límites entre 0 y
180 grados para operar

Debo desconectar temporalmente el servo del programa anterior para cargar un nuevo
programa de servo

Aquí debemos habilitar el monitor serial del programa (menú herramientas), monitor Serie
Una vez el programa este cargando desde esta ventana podremos dar los comandos para
aumentar o disminuir
Código
#include <Servo.h>

// servo con control del teclado

Servo miServo;

int angulo=90;

void setup(){

miServo.attach(9);

Serial.begin(9600);

void loop(){

unsigned char comando=0;

if(Serial.available()){//solo leeremos si hay un byte en el buffer

comando=Serial.read();//leemos el byte

if(comando=='a')angulo+=10;//incrementamos 10

else if(comando=='z')angulo-=10;//decrementamos 10

angulo=constrain(angulo,0,180);//restringimos el valor de 0 a 180

miServo.write(angulo);

Serial.print("Angulo:");Serial.println(angulo);

delay(100);

}//End loop
¿Cuáles fueron los aprendizajes más importantes de esta sesión?

¿Qué fue lo que más se dificultó al grupo?

¿En su concepto que tipo de cosas se requieren para que se pueda dar un aprendizaje
colaborativo?

Como grupo deben indagar sobre un proyecto con ARDUINO distinto a los ya vistos y
elaborarlo para la próxima sesión,
Se hará este proyecto:
Semáforo con Arduino

Link: https://www.youtube.com/watch?v=ceMkvShbViw

También podría gustarte