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.