sddefault 12

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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *