Jump to content

dancezar

Active Members
  • Posts

    981
  • Joined

  • Last visited

  • Days Won

    20

Posts posted by dancezar

  1. Pentru a putea realiza acest proiect aveti nevoie de:

    -o placa arduino (depinde placa puteti gasi clone pe okazii la 80 de lei sau pe teguna la 50-60 lei)

    -6 leduri(2 verzi,2 galbene,2 rosii) (Se gasesc oriunde)

    -6 rezistente de 1kohm (in orice aparat electronic)

    -un zenzor de distanta (pe okazii la 28 de lei Modul / Senzor / Shield HC-SR04 Ultrasonic masurarea distantei pentru Arduino uno mega AVR ARM - Okazii (124962590) )

    -baterie 9v si un soclu(cam 5-6 lei)

    -intrerupator

    Cum functioneaza senzorul de distanta?

    Principiul este simplu este ca la un sonar.Atunci cand pinul trigger are 5 volti la capat ,modulul trimite o unda de suntet.Atunci cand unda intalneste un obiect in cale sunetul este trimis inapoi iar pinul echo analizeaza timpul de raspuns in care unda este trimisa inapoi.

    View image: tut01

    Conecsiunea componentelor arata astfel:

    View image: Arduino RGB Rainbow pq

    trigger-pin 13

    echo -pin 12

    ledurile-de la pin 11 pana la pin 6

    Codul(am explicat aproape tot ce se putea):

    int trigPin=13;

    int echPin=12;

    int led1=11;//led verde

    int led2=10;//led verde

    int led3=9;//led galben

    int led4=8;//led galben

    int led5=7;//led rosu

    int led6=6;//led rosu

    int limita=30;//limita de distanta dintre masina este de 30 de cm

    //pini pentru led si triggerul de la sharp sunt de iesire iar echo pin este de intrare

    void setup(){//Initializam pini

    pinMode(trigPin,OUTPUT);

    pinMode(echPin,INPUT);

    pinMode(led1,OUTPUT);

    pinMode(led2,OUTPUT);

    pinMode(led3,OUTPUT);

    pinMode(led4,OUTPUT);

    pinMode(led5,OUTPUT);

    pinMode(led6,OUTPUT);

    }

    //functia pentru determinarea distantei in centimetri

    int distanta(){

    long duration, distance;

    digitalWrite(trigPin, LOW);//inchidem senzorulul

    delayMicroseconds(2);//asteptam 2 microsecunde

    digitalWrite(trigPin, HIGH);//deschidem senzorul

    delayMicroseconds(10);//asteptam 10 micro secunde

    digitalWrite(trigPin, LOW);//inchidem senzorul

    duration = pulseIn(echoPin, HIGH);//analizam durata

    distance = (duration/2) / 29.1;//calcule

    return distance; //intoarcem distanta

    }

    //functia loop se repeta la infinit

    void loop(){

    int cm=distanta();

    if(cm==limita){

    //aprindem toate ledurile

    digitalWrite(led1,HIGH);

    digitalWrite(led2,HIGH);

    digitalWrite(led3,HIGH);

    digitalWrite(led4,HIGH);

    digitalWrite(led5,HIGH);

    digitalWrite(led6,HIGH);

    }else if(cm>=limita&&cm<=40){

    digitalWrite(led1,LOW);

    digitalWrite(led2,HIGH);

    digitalWrite(led3,HIGH);

    digitalWrite(led4,HIGH);

    digitalWrite(led5,HIGH);

    digitalWrite(led6,HIGH);

    }else if(cm>=40&&cm<=50){

    digitalWrite(led1,LOW);

    digitalWrite(led2,LOW);

    digitalWrite(led3,HIGH);

    digitalWrite(led4,HIGH);

    digitalWrite(led5,HIGH);

    digitalWrite(led6,HIGH);

    }else if(cm>=50&&cm<=80){

    digitalWrite(led1,LOW);

    digitalWrite(led2,LOW);

    digitalWrite(led3,LOW);

    digitalWrite(led4,HIGH);

    digitalWrite(led5,HIGH);

    digitalWrite(led6,HIGH);

    }else if(cm>=80&&cm<=130){

    digitalWrite(led1,LOW);

    digitalWrite(led2,LOW);

    digitalWrite(led3,LOW);

    digitalWrite(led4,LOW);

    digitalWrite(led5,HIGH);

    digitalWrite(led6,HIGH);

    }else{

    digitalWrite(led1,LOW);

    digitalWrite(led2,LOW);

    digitalWrite(led3,LOW);

    digitalWrite(led4,LOW);

    digitalWrite(led5,LOW);

    digitalWrite(led6,HIGH);

    }

    }

    Dupa ce ati incarcat codul pe placa.Puneti totul intr-o cutie frumos iar senzorul de dinstanta il camuflati undeva in bara din spate,iar panoul cu leduri si placa arduino in fata cu soferul.Sezorul nu masoara foarte bine dupa calculele mele la 10 cm el masoara 8 cm.Daca am greseli de gramtica va rog sa le treceti cu vederea si da desenele sunt jalnice.

  2. Buna ma numesc Dan Cezar sunt din Galati,am 16 ani si sunt elev in clasa a X-a la profil info intensiv.Sunt foarte pasionat de tot ce tine de programare si securitate.In prezent cunosc 5 limbaje de programare(php si mysql,c++,vb 6,c#,python,si mai lucrez si cu arduino).Ma-am inscris pe acest forum pentru a invata mult mai multe despre programare si mai ales sa invat hacking unde nu stiu prea multe.

×
×
  • Create New...