
Ejercicio.- No toques la caja con Arduino
Ahora vamos a crear una caja que no se deja tocar llamada “No toques la caja con Arduino” con la ayuda de un gato (impreso). La idea es que cuando acerquemos la mano o cualquier cosa salga inmediatamente la mano de nuestro gato a impedir que se toque el botón de la caja con Arduino, pero hay un tiempo de gracia que se nos indica con un led verde y cuando no se debe de tocar se enciende un led rojo.
Vamos a requerir los siguiente:
- 1 Arduino Uno R3.
- 1 Pulsador.
- 3 Resistencias de 330 Ω .
- 2 Micro Servomotores.
- 1 Zumbador.
- 1 Sensor de distancia ultrasónico.
- 2 LED (Blanco, Rojo).
🔗 Micro servomotor: https://www.steren.com.mx/catalog/product/view/id/19604/s/micro-servomotor-con-torque-de-1-8-kgf-cm/
🔗 Protoboard: https://www.steren.com.mx/protoboard-de-ensamble-a-presion-1-bloque-y-2-tiras.html
🔗 Codigo de No toques la caja con Arduino: https://www.tinkercad.com/
// C++ code
//
#include <Servo.h>
int ALEATORIA = 0;
int DISTANCIA = 0;
long readUltrasonicDistance(int triggerPin, int echoPin)
{
pinMode(triggerPin, OUTPUT); // Clear the trigger
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
// Sets the trigger pin to HIGH state for 10 microseconds
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
// Reads the echo pin, and returns the sound wave travel time in microseconds
return pulseIn(echoPin, HIGH);
}
Servo servo_3;
Servo servo_4;
void setup()
{
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
servo_3.attach(3, 500, 2500);
servo_4.attach(4, 500, 2500);
pinMode(5, OUTPUT);
pinMode(2, INPUT);
Serial.begin(9600);
}
void loop()
{
if (ALEATORIA > 0 && ALEATORIA < 100) {
if (ALEATORIA > 20) {
DISTANCIA = 0.01723 * readUltrasonicDistance(7, 6);
digitalWrite(9, HIGH);
digitalWrite(8, LOW);
if (DISTANCIA < 20) {
servo_3.write(90);
servo_4.write(90);
tone(5, 5274, 1000); // play tone 100 (E8 = 5274 Hz)
delay(1000); // Wait for 1000 millisecond(s)
servo_3.write(0);
servo_4.write(0);
tone(5, 5274, 1000); // play tone 100 (E8 = 5274 Hz)
delay(1000); // Wait for 1000 millisecond(s)
ALEATORIA = 0;
}
if (DISTANCIA >= 20) {
delay(100); // Wait for 100 millisecond(s)
ALEATORIA += 1;
}
}
if (ALEATORIA <= 20) {
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
if (digitalRead(2) == HIGH) {
tone(5, 29, 3000); // play tone 10 (A#0 = 29 Hz)
}
ALEATORIA += 1;
}
Serial.println(ALEATORIA);
}
if (ALEATORIA == 0 || ALEATORIA >= 100) {
ALEATORIA = random(1, 100 + 1);
servo_3.write(0);
servo_4.write(0);
}
}
🔗 Appinventor: https://appinventor.mit.edu/
🔗 Pagina oficial de fritzing: https://fritzing.org/
🔗 Descargar fritzing: http://www.mediafire.com/file/mizua1g8tb5cgtg/Fritzing_64_bit_Win.rar/file
🔗 Arduino virtual: https://www.tinkercad.com/
🔗 Pagina de arduino: https://www.arduino.cc/
🔗 Descargar arduino IDE: https://www.arduino.cc/en/software
🎦¿Que es c++? [C++ desde cero 2019🦸♂️]: https://www.youtube.com/watch?v=APN8aCyPvww&list=PLCTD_CpMeEKTofxs7iottRxJ5YPM7BOcc&ab_channel=programadornovato
Anterior tutorial Siguiente tutorial
Ave que vuela, a la cazuela.