Instrumentatie Virtuala Proiect – Aplicatie Arduino UNO [630072]

Instrumentatie Virtuala Proiect – Aplicatie Arduino UNO
Bostina Raoul Stelian Țîrcă Octavian-Viorel Rogojan Cosmin Cristian Popescu Lazureanu Mircea 
INSTRUMENTATIE VIRTUALA$1

Folosirea senzorului de distanta cu ultrasunete HC-SR04
Arduino UNO  este o platforma de procesare open-source, bazata pe software si hardware flexibil si simplu de folosit. Consta intr-o platforma de mici dimensiuni (6.8 cm / 5.3 cm – in cea mai des intalnita varianta) construita in jurul unui procesor de semnal si este capabila de a prelua date din mediul inconjurator printr-o serie de senzori si de a efectua actiuni asupra mediului prin intermediul luminilor, motoarelor, servomotoare, si alte tipuri de dispozitive mecanice. Procesorul este capabil sa ruleze cod scris intr-un limbaj de programare care este foarte similar cu limbajul C++. Specificatii : •Microcontroler: ATmega328 •Tensiune de lucru: 5V •Tensiune de intrare (recomandat): 7-12V •Tensiune de intrare (limita):  6-20V •Pini digitali: 14 (6 PWM output) •Pini analogici: 6 •Curent per pin I/O: 40 mA •Curent 3.3V: 50 mA •Memorie Flash: 32 KB (ATmega328)  0.5 KB pentru bootloader •SRAM: 2 KB (ATmega328) INSTRUMENTATIE VIRTUALA$2

•EEPROM: 1 KB (ATmega328) •Clock Speed: 16 MHz Există 14 pini digitali de intrare / ieșire (I/O sau input/output). Aceștia operează la o tensiune de 5 volți și pot fi controlați cu una din funcțiile pinMode(), digitalWrite() și digitalRead(). Există o serie de 6 pini pentru semnal analogic, numerotați de la A0 la A5. Fiecare din ei poate furniza o rezoluție de 10 biți (adică maxim 1024 de valori diferite). În mod implicit se măsoară de la 0 la 5 volți, deși este posibil să se schimbe limita superioară a intervalului lor folosind pinul 15 AREF și funcția analogReference(). Lângă pinii analogici arătați mai există o secțiune de pini notată POWER. Senzorul HC-SR04 poate masura distante intre 2cm si 400cm cu precizie care poate ajunge  la  3mm. Fiecare modul HC-SR04 include un transmitator ultrasonic, un receptor si un circuit de comanda. Pentru functionare senzorul are nevoie de 4 pini VCC (Power), Trig (Trigger), Echo (Primire), si GND . Caracteristici: •Tensiune de operare: DC 5V •Curentul de functionare: 15mA •Unghi de functionare: 15 ° •Distanta: 2cm – 4m Piese necesare proiect : 1 x placă Arduino UNO R3 1 x Senzor de distanță cu ultrasunete HC-SR04 3 x LED (plus 3 rezistențe de 1 kΩ pentru aceste leduri) cabluri de legătură necesare între piese și placă Algoritm : Inițial ledurile sunt oprite. La distanța cea mai mare (eu am specificat în cod peste valoarea 3000) toate ledurile sunt de asemenea oprite. Dacă se detectează un obstacol între valorile 2001 și 3000 se aprinde 1 led (aproximativ între 30-40 cm distanță). Dacă obiectul se apropie între valorile 1000 si 2000 am setat să se aprindă 2 leduri. Dacă obiectul e foarte aproape de senzor (sub 1000 respectiv sub 10-15 cm) am setat să se aprindă toate 3 ledurile. INSTRUMENTATIE VIRTUALA$3

Montare : Senzorul are 4 pini respectiv: VCC de la senzor se cupleaza la +5V de pe placa arduino. TRIG de la senzor se cuplează la unul din pinii digitali de pe placa arduino (în cod am setat pinul 2) ECHO de la senzor se cuplează la un alt pin digital de pe placa arduino (în cod am setat pinul 3) GND de la senzor se cuplează la unul din pinii GND de la arduino LED-urile se cuplează și ele (prin intermediul unei rezistențe de 1 kΩ) la pinii 8,9 și 10 iar negativul de la leduri la GND de la arduino. Codul necesar : /* * Ultrasound model: HC-SR04 * Senzor pins  | Arduino Board * VCC la 5V * TRIG la Digital pin 2 * ECHO la Digital pin 3 * GND la GND * LED1 la Digital pin 8 * LED2 la Digital pin 9 * LED3 la Digital pin 10 */ // initialize the necessary ports int usTrigger = 2; int usEcho = 3; int led1 = 8; int led2 = 9; int led3 = 10; void setup() { // start ultrasound pinMode(usTrigger, OUTPUT); pinMode(usEcho, INPUT); // start leds pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); } void loop() { INSTRUMENTATIE VIRTUALA$4

// Initiate ultrasonic speaker digitalWrite(usTrigger, HIGH); delayMicroseconds(10); digitalWrite(usTrigger, LOW); // Reading out the signal strength long timecount = pulseIn(usEcho, HIGH); // if more than 3000 all LEDs stop. if ( timecount > 3000 ) { digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); } // If it’s between 2001 and 3000 start LED 1 if ( timecount > 2000 && timecount <= 3000 ) { digitalWrite(led1, HIGH); digitalWrite(led2, LOW); digitalWrite(led3, LOW); } // If it’s between 1000 and 2000 start LED 1 and 2 if ( timecount >= 1000 && timecount <= 2000 ) { digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, LOW); } // If it’s under 1000 turn all LEDs if ( timecount < 1000 ) { digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); } // Wait 0.1 seconds before the next reading. delay(100); }
INSTRUMENTATIE VIRTUALA$5

Bibliografie https://www.robofun.ro/ https://en.wikipedia.org/wiki/Arduino https://www.itead.cc/wiki/Ultrasonic_Ranging_Module_HC-SR04 https://github.com/arduino/Arduino https://www.arduino.cc http://roboromania.ro/projects/
INSTRUMENTATIE VIRTUALA$6

Similar Posts