1. PRÁCTICAS BÁSICAS SIMULADAS CON
TINKERCAD PARA INICIAR CON
ARDUINO
Instituto Tecnológico de Matamoros
PASOS:
1.- Crear una cuenta en tinkercad: www.tinkercad.com
2.- Para iniciar un circuito seleccionar Circuits
3.- Seleccionar “Crear nuevo circuito”
4.- En componentes selecciona “Arduino” en starters para un circuito realizado o en búsqueda básica
para hacerlo desde cero.
5.- Utiliza el tab llamado “codigo”. Encontrarás 2 opciones para crear un programa. por bloques o con
código. Puedes trabajar con las 2 formas o preferir un método.
6.- Simular y verificar su funcionamiento.
2. PRACTICA 1
/* PRACTICA 1 */
/* Realizar un circuito el cual pueda ser
capaz de encender un LED durante un
segundo,
para después apagarlo durante un segundo. */
void setup()
{ pinMode(LED_BUILTIN, OUTPUT);}
void loop() {
digitalWrite(LED_BUILTIN,HIGH);
delay (1000);
digitalWrite(LED_BUILTIN,LOW);
delay (1000); }
3. PRACTICA 2
/* PRACTICA 2 */
/* Esta práctica trata de realizar un circuito
en el que dos leds se enciendan y se
apaguen de forma síncrona.Es decir,
cuando un led esté encendido,
el otro deberá estar apagado, y viceversa.
La duración de la posición encendido y
apagado deberá ser de un segundo. */
void setup()
{
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void loop()
{
digitalWrite(8,HIGH);
delay (1000);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
delay (1000);
digitalWrite(9,LOW);
}
4. PRÁCTICA 3
/* PRACTICA 3 */
/* Se realizará un circuito en el que
los leds se enciendan y se
apaguen simulando el efecto de
una estela de luz. Es decir, se
programará una secuencia de
encendido y apagado para cada
led, uno después del otro, para
recrear tal efecto. Una vez que la
estela llegue al final, deberá volver,
haciendo el recorrido inverso.
El circuito deberá contener 7 LEDs.
Cada uno de los LEDs deberá
encender durante 1 segundo.
Posterior a este tiempo, el LED
encendido deberá apagarse y el siguiente LED en la secuencia deberá encenderse; comenzando
nuevamente la rutina. */
int n=7;
void setup()
{
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
for (int i=7; i<14; i++)
{
Serial.print(i);
digitalWrite(i,HIGH);
delay (1000);
digitalWrite(i,LOW);
}
for (int n=12; n>7; n--)
{
digitalWrite(n,HIGH);
delay (1000);
digitalWrite(n,LOW);
}
}
5. PRÁCTICA 4
/* PRÁCTICA 4 */
/*En esta práctica crearemos un circuito en el
que podamos gestionar de forma eficiente, y
simulando lo más fielmente posible, un
semáforo real. El circuito simulará dos
semáforos de dos calles que se interseccionan
perpendicularmente. Solo tres luces por
semáforo. El circuito deberá obedecer la
siguiente serie de estados, cada una estando
1 segundo activa antes de cambiar: */
int V1=8;
int A_1=9;
int R1=10;
int V2=11;
int A_2=12;
int R2=13;
void setup()
{
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop()
{
// Paso 1
digitalWrite(V1,HIGH);
digitalWrite(A_1,LOW);
digitalWrite(R1,LOW);
digitalWrite(V2,LOW);
digitalWrite(A_2,LOW);
digitalWrite(R2,HIGH);
delay(1000);
// Paso 2
digitalWrite(V1,LOW);
digitalWrite(A_1,HIGH);
digitalWrite(R1,LOW);
digitalWrite(V2,LOW);
7. PRÁCTICA 5
/* PRÁCTICA 5 */
/* En esta práctica se deberá realizar un circuito en el
que un LED cambie la intensidad de su brillo.
Para conseguir este efecto hay que recordar que se
deberá utilizar la función AnalogWrite (pin,valor) y variar
el duty cycle, obteniendo así un efecto de señal
analógica y, por tanto, de brillo en el led.
El LED deberá ir aumentado el brillo(con un ritmo de
+10 en el valor analogico, por cada 200 milisegundos)
y, una vez llegado al límite (valor 255), bajar hasta su
apagado (valor 0).Una vez llegado a 0 deberá volver a
comenzar y aumentar poco a poco el brillo. */
void setup()
{
pinMode(8, OUTPUT);
}
void loop()
{
digitalWrite(8,LOW); analogWrite(8,LOW); brillo ();
}
void brillo ()
{
for (int i=0; i<= 255; i=i+10)
{ analogWrite (8,i); delay(200);}
}
8. PRACTICA 6
/* PRACTICA 6 */
/* Se realizará un circuito en el que un LED
emule la luz de una vela; La luminosidad del
LED deberá variar de forma aleatoria. */
void setup()
{
pinMode(8, OUTPUT);
}
void loop()
{
randomSeed (millis ());
analogWrite(8,random(255));
delay(random (50));
}
9. PRACTICA 7
/* PRACTICA 7 */
/* Crear diferentes tonos mediante la
función tone() */
void setup()
{
pinMode(5, OUTPUT);
}
void loop()
{
delay(100);
for (int i= 200; i<= 1800; i=i+100)
{
tone (5,i,100);
delay(100);
noTone(5);
}
}
10. PRACTICA 8
/* PRACTICA 8 */
/* Al presionar el botón, deberá ocurrir lo
siguiente:
- El LED deberá encender y apagarse en 10
ocasiones.(1s de apagado y 1s de
encendido)
- El piezo o speaker deberá realizar un
sonido cualquiera en 10 ocasiones. (un
lapso de 1 segundo entre sonidos)
- Ambos procesos pasando al mismo tiempo.
- Al finalizar ambos procesos el Arduino
volverá a su estado pasivo. */
int led = 8;
int boton = 2;
int bocina = A0;
int estado = 0;
void setup()
{
pinMode(led, OUTPUT);
pinMode(boton, INPUT);
pinMode(bocina, OUTPUT);
}
void loop()
{
estado = digitalRead(boton);
if (estado == HIGH)
{
for (int i = 0; i <=10; i++)
{
digitalWrite (led, HIGH); tone (bocina, 200); delay (1000);
noTone(bocina); digitalWrite (led, LOW); delay (1000);
}
estado = LOW;
}
}
11. PRACTICA 9
/*Practica 9. Movimiento de un Servomotor
• En esta práctica se realizará un circuito que dote
un servomotor de movimiento. */
#include <Servo.h>
Servo Motor1;
int dipswitch=7;
int led=3;
int dato;
void setup()
{
Motor1.attach(9);
pinMode(dipswitch, INPUT);
pinMode(led,OUTPUT);
}
void loop()
{
dato = digitalRead(dipswitch);
if (dato == HIGH) { Motor1.write(0); digitalWrite(led,LOW);}
if (dato == LOW) { digitalWrite(led,HIGH); Motor1.write(90); digitalWrite(led,HIGH);
}
PRACTICA 10
12. /*Practica 10. En esta práctica se realizará un
circuito en el que se puedan detectar
objetos cercanos. Un detector ultrasónico que
detecta y calcule la cercanía del objeto
en centímetros.
- Si el objeto se detecta a una distancia
menor de 50 cm, que esté accione una
alarma.
- Tal alarma puede incluir un LED y un buzzer
que se encienden y apaguen. */
int led=5;
int buz=2;
int cm=0;
int inches=0;
long readUltrasonicDistance (int signal)
{
pinMode(signal,OUTPUT);
digitalWrite(signal,LOW);
delayMicroseconds(2);
digitalWrite(signal,HIGH);
delayMicroseconds(10);
digitalWrite(signal,LOW);
pinMode(signal,INPUT);
return pulseIn(signal, HIGH);
}
void setup()
{
pinMode(led, OUTPUT);
pinMode(buz,OUTPUT);
digitalWrite(led, LOW);
digitalWrite(buz,LOW);
pinMode(11,INPUT);
Serial.begin(9600);
}
void loop()
{
cm= 0.01723 * readUltrasonicDistance(11);
inches = (cm/2.54);
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.println("cm, ");
// Serial.print(readUltrasonicDistance(11));
13. delay(100);
if (cm > 50) {
digitalWrite(led,HIGH);
tone (buz,800);
delay(1000);
digitalWrite(led,LOW);
noTone(buz);
delay(1000);
}
}