Projekt číslo 9.

Don't touch box







Sestrojil jsem krabici známou jako "Don´t touch" Výše jsou vidět elektronické moduly, které jsem použil.
Cena modulů: IR modul (4kč), zvuk.modul ISD1820 (50kč), arduino nano (50kč), kolébkový vypínač (3kč),
páčkový vypínač (11kč), akumulátor z ČR (115kč), servo sg90 (15kč), servo MG996 (86kč)
A vodiče. Já jsem použil vodiče s piny na snadné propojování. Vše krom akumulátoru je z Číny.
Vzadu krabice jsou dvě "svorky" k nabíjení akumulátoru a power vypínač. IR senzor je umístěný pod
páčkovým vypínačem. Níže je schéma zapojení. Určitě bude třeba přepsat hodnoty pro servo motorky, protože
hodnoty budou jiné, vzhledem k jinak položeným servům a tak. Ale to s pomocí najdi a přepiš vše
se usnadňuje. Do zvukového modulu si nahrajete vlastní zvuk přes mikrofon na modulu.
Krabice je z 5mm sololitu a má rozměry 210x115mm výška 85mm. je to na uvážení a možnostech každého z nás.






#include <Servo.h>
Servo packaServo;
Servo vikoServo;

int prepinac = 0, akce = 1, infra = 0 , plus = 0;



void setup()
{
  packaServo.attach(7);
  vikoServo.attach(8);
  packaServo.write(180);   //start pozice
  vikoServo.write(26);    //start pozice
  pinMode(5, INPUT);     //vstup infra
  pinMode(4, OUTPUT);    //výstup sound modul
}


void loop()
{
  prepinac = digitalRead(9);


  // první akce----------------------------------------------------------------------------

  if (prepinac == LOW) {

    if (akce == 1)
    {
      for (int i = 26; i <= 62; i++)
      {
        vikoServo.write(i);
        delay(2);
      }
      delay(300);
      for (int i = 180; i >= 24; i--)
      {
        packaServo.write(i);
        delay(1);
      }
      delay(500);
      packaServo.write(18);
      delay(200);
      for (int i = 26; i <= 180; i++)
      {
        packaServo.write(i);
        delay(2);
      }
      digitalWrite(4, HIGH);
      delay(50);
      digitalWrite(4, LOW);
      for (int i = 62; i >= 26; i--)
      {
        vikoServo.write(i);
        delay(2);
      }
      akce++;
    }

    // druhá akce----------------------------------------------------------------------------


    else if (akce == 2)
    {
      for (int i = 26; i <= 62; i++) {
        vikoServo.write(i);
        delay(4);
      }
      delay(550);
      packaServo.write(18);
      delay(550);
      packaServo.write(180);
      delay(550);
      vikoServo.write(26);
      delay(800);
      for (int i = 26; i <= 62; i++) {
        vikoServo.write(i);
        delay(6);
      }
      delay(2000);
      vikoServo.write(26);
      digitalWrite(4, HIGH);
      delay(50);
      digitalWrite(4, LOW);
      akce++;
    }

    // třetí akce----------------------------------------------------------------------------



    else if (akce == 3)
    {
      for (int i = 26; i <= 62; i++) {
        vikoServo.write(i);
        delay(6);
      }
      delay(1000);
      vikoServo.write(26);
      delay(1000);
      for (int i = 26; i <= 62; i++) {
        vikoServo.write(i);
        delay(6);
      }
      packaServo.write(18);
      delay(550);
      packaServo.write(180);
      delay(500);
      vikoServo.write(26);
      digitalWrite(4, HIGH);
      delay(50);
      digitalWrite(4, LOW);
      akce++;
    }

    // čtvrtá akce----------------------------------------------------------------------------



    else if (akce == 4)
    {
      for (int i = 26; i <= 62; i++)
      {
        vikoServo.write(i);
        delay(20);
      }
      for (int i = 180; i >= 35; i--)
      {
        packaServo.write(i);
        delay(10);
      }
      delay(2000);
      packaServo.write(18);
      delay(200);
      packaServo.write(180);
      delay(400);
      vikoServo.write(26);
      digitalWrite(4, HIGH);
      delay(50);
      digitalWrite(4, LOW);
      akce++;
    }


    // pátá akce----------------------------------------------------------------------------


    else if (akce == 5)
    {
      for (int i = 26; i <= 62; i++) {
        vikoServo.write(i);
        delay(6);
      }
      delay(2000);
      packaServo.write(52);
      delay(550);
      packaServo.write(32);
      delay(200);
      packaServo.write(52);
      delay(200);
      packaServo.write(32);
      delay(200);
      packaServo.write(52);
      delay(200);
      packaServo.write(32);
      delay(200);
      packaServo.write(52);
      delay(200);
      packaServo.write(32);
      delay(200);
      packaServo.write(52);
      delay(200);
      packaServo.write(32);
      delay(1400);
      packaServo.write(18);
      delay(400);
      packaServo.write(180);
      delay(400);
      vikoServo.write(26);
      digitalWrite(4, HIGH);
      delay(50);
      digitalWrite(4, LOW);
      akce++;
    }


    // šestá akce----------------------------------------------------------------------------

    else if (akce == 6)
    {
      for (int i = 26; i < 62; i++)
      {
        vikoServo.write(i);
        delay(20);
      }
      delay(1000);
      for (int i = 0; i < 6; i++)
      {
        for (int j = 26; j <= 62; j++) {
          vikoServo.write(j);
          delay(6);
        }
        delay(200);
      }
      for (int i = 180; i >= 35; i--)
      {
        packaServo.write(i);
        delay(20);
      }
      packaServo.write(18);
      delay(400);
      packaServo.write(180);
      delay(400);
      vikoServo.write(26);
      delay(1500);
      for (int i = 26; i <= 40; i++) {
        vikoServo.write(i);
        delay(6);
      }
      delay(3000);
      vikoServo.write(26);
      digitalWrite(4, HIGH);
      delay(50);
      digitalWrite(4, LOW);
      akce++;
    }


    // sedmá akce----------------------------------------------------------------------------

    else if (akce == 7)
    {
      for (int i = 26; i <= 62; i++) {
        vikoServo.write(i);
        delay(6);
      }
      delay(400);
      packaServo.write(18);
      delay(1000);
      for (int i = 0; i < 5; i++)
      {
        for (int j = 26; j <= 62; j++) {
          vikoServo.write(j);
          delay(6);
        }
        delay(200);
      }
      delay(500);
      packaServo.write(180);
      delay(400);
      vikoServo.write(26);
      digitalWrite(4, HIGH);
      delay(50);
      digitalWrite(4, LOW);
      akce++;
    }


    // osmá akce----------------------------------------------------------------------------


    else if (akce == 8 & plus == 0)
    {
      for (int i = 26; i <= 62; i++) {
        vikoServo.write(i);
        delay(6);
      }
      packaServo.write(18);
      delay(2000);
      for (int i = 0; i < 7; i++)
      {
        packaServo.write(75);
        delay(100);
        packaServo.write(40);
        delay(100);
      }
      delay(500);
      packaServo.write(180);
      delay(1000);
      vikoServo.write(26);
      digitalWrite(4, HIGH);
      delay(50);
      digitalWrite(4, LOW);
      plus = 1;
    }





    // devátá akce----------------------------------------------------------------------------

    else if (akce == 9)
    {
      for (int i = 26; i <= 62; i++) {
        vikoServo.write(i);
        delay(6);
      }
      delay(1500);
      vikoServo.write(62);
      for (int i = 180; i >= 35; i--)
      {
        packaServo.write(i);
        delay(40);
      }
      delay(500);
      packaServo.write(18);
      delay(200);
      for (int i = 18; i <= 180; i++)
      {
        packaServo.write(i);
        delay(40);
      }
      vikoServo.write(26);
      delay(2000);
      vikoServo.write(62);
      delay(3000);
      vikoServo.write(26);
      digitalWrite(4,HIGH);
      delay(50);
      digitalWrite(4,LOW);
      akce++;
    }


    // desátá akce----------------------------------------------------------------------------


    else if (akce == 10)
    {
      for (int i = 26; i <= 62; i++)
      {
        vikoServo.write(i);
        delay(50);
      }
      delay(1000);
      for (int i = 0; i < 10; i++)
      {
        for (int j = 26; j <= 62; j++) {
          vikoServo.write(j);
          delay(6);
        }
        delay(100);
      }
      vikoServo.write(62);
      delay(100);
      packaServo.write(18);
      delay(650);
      packaServo.write(180);
      delay(400);
      vikoServo.write(26);
      digitalWrite(4,HIGH);
      delay(50);
      digitalWrite(4,LOW);
      akce++;
    }

    // jedenáctá akce----------------------------------------------------------------------------


    else if (akce == 11)
    {
      for (int i = 26; i <= 62; i++) {
        vikoServo.write(i);
        delay(4);
      }
      packaServo.write(18);
      delay(2000);
      for (int i = 0; i < 3; i++)
      {
        packaServo.write(65);
        delay(200);
        packaServo.write(40);
        delay(200);
      }
      delay(1500);
      packaServo.write(180);
      delay(400);
      vikoServo.write(26);
      delay(1500);
      for (int i = 26; i <= 62; i++) {
        vikoServo.write(i);
        delay(6);
      }
      packaServo.write(18);
      delay(3000);
      packaServo.write(180);
      delay(400);
      vikoServo.write(26);
      digitalWrite(4,HIGH);
      delay(50);
      digitalWrite(4,LOW);
      akce++;
    }


    // dvanáctá akce----------------------------------------------------------------------------


    else if (akce == 12)
    {
      for (int i = 26; i <= 62; i++)
      {
        vikoServo.write(i);
        delay(50);
      }
      delay(1000);
      for (int i = 180; i >= 26; i--)
      {
        packaServo.write(i);
        delay(50);
      }
      delay(1000);
      packaServo.write(18);
      delay(200);
      packaServo.write(180);
      delay(400);
      vikoServo.write(26);
      digitalWrite(4,HIGH);
      delay(50);
      digitalWrite(4,LOW);
      akce++;
    }

    // třináctá akce----------------------------------------------------------------------------


    else if (akce == 13)
    {
      for (int i = 26; i <= 62; i++) {
        vikoServo.write(i);
        delay(6);
      }
      delay(2000);
      for (int i = 180; i >= 62; i--)
      {
        packaServo.write(i);
        delay(20);
      }
      for (int i = 0; i < 3; i++)
      {
        packaServo.write(62);
        delay(200);
        packaServo.write(40);
        delay(800);
      }
      packaServo.write(18);
      delay(2000);
      packaServo.write(180);
      delay(500);
      vikoServo.write(26);
      digitalWrite(4,HIGH);
      delay(50);
      digitalWrite(4,LOW);
      akce++;
    }

    // čtrnáctá akce----------------------------------------------------------------------------


    else if (akce == 14)
    {
      for (int i = 26; i <= 62; i++) {
        vikoServo.write(i);
        delay(6);
      }
      delay(4000);
      vikoServo.write(62);
      packaServo.write(18);
      delay(650);
      packaServo.write(180);
      delay(500);
      vikoServo.write(62);
      delay(4000);
      vikoServo.write(26);
      digitalWrite(4,HIGH);
      delay(50);
      digitalWrite(4,LOW);
      akce++;
    }

    // patnáctá akce----------------------------------------------------------------------------


    else if (akce == 15)
    {
      for (int i = 26; i <= 62 ; i++) {
        vikoServo.write(i);
        delay(6);
      }
      delay(1000);
      for (int i = 0; i < 3; i++)
      {
        for (int j = 26; j <= 50; j++) {
          vikoServo.write(j);
          delay(50);
        }
        for (int j = 50; j >= 26; j--)
        {
          vikoServo.write(j);
          delay(50);
        }
      }
      for (int j = 26; j <= 62; j++) {
        vikoServo.write(j);
        delay(50);
      }
      for (int i = 180; i >= 35; i--)
      {
        packaServo.write(i);
        delay(40);
      }
      delay(1000);
      packaServo.write(18);
      delay(400);
      packaServo.write(180);
      delay(400);
      vikoServo.write(26);
      digitalWrite(4,HIGH);
      delay(50);
      digitalWrite(4,LOW);
      akce = 1;
    }

  }

  // akce je spuštěna IR senzorem---------------------------------------------------------------
  if (akce == 8 & plus == 1)
  {
    if (digitalRead(5) == 0) {
      vikoServo.write(54);
      delay(362);
      vikoServo.write(26);
      infra++;
    }
  }
  // konec akce spouštění IR senzorem------------------------------------------------------------
  if (infra == 8)
  {
    digitalWrite(4, HIGH);
    delay(50);
    digitalWrite(4, LOW);
    infra = 0;
    akce++;
    plus = 0;
  }
}



Děkuji za návštěvu
info@arduinoo.cz