
#define ECHO_PIN 8 #define TRIG_PIN 7 void setup() { pinMode(ECHO_PIN, INPUT); pinMode(TRIG_PIN, OUTPUT); Serial.begin(960); } void loop() { Serial.println(measure()); } int measure() { digitalWrite(TRIG_PIN,HIGH); digitalWrite(TRIG_PIN,LOW); int distance=pulseIn(ECHO_PIN, HIGH,15000)/50; return constrain(distance,1,300); }

#define ECHO_PIN 8 #define TRIG_PIN 7 void setup() { pinMode(ECHO_PIN, INPUT); pinMode(TRIG_PIN, OUTPUT); Serial.begin(960); } void loop() { digitalWrite(TRIG_PIN,HIGH); digitalWrite(TRIG_PIN,LOW); int distance=pulseIn(ECHO_PIN, HIGH)/50; Serial.println(distance); }
Ülesanne 7.1 Rahakarp või Prügikast
https://www.tinkercad.com/things/ht0VyEyaulj-ingenious-migelo/editel?sharecode=sIcQfSz5CxY_jS7x70fYhkYoLmwb2KDhNSXJJvMpIRo

#define ECHO_PIN 8 #include <Servo.h> #define TRIG_PIN 7 const int ledPin = 13; Servo servo1; #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); servo1.attach(9); pinMode(ECHO_PIN, INPUT); pinMode(ledPin, OUTPUT); pinMode(TRIG_PIN, OUTPUT); Serial.begin(9600); } void loop() { digitalWrite(TRIG_PIN, HIGH); int distance = measureDistance(); distanceFr(distance); digitalWrite(TRIG_PIN, LOW); delay(500); } int measureDistance() { unsigned long duration; digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); duration = pulseIn(ECHO_PIN, HIGH); int distance = duration * 0.034 / 2; return distance; } void distanceFr(int distance) { if (distance > 4 && distance < 40) { servo1.write(0); digitalWrite(ledPin, HIGH); delay(1000); servo1.write(100); delay(1000); lcd.setCursor(1, 0); lcd.print("HAVE A NICE DAY"); delay(2000); lcd.clear(); } else { servo1.write(0); digitalWrite(ledPin, LOW); } }
Oli kasutatud:
juhtmed 23 tk
arduino uno R3 1 tk
arendusplaat 1tk
kaugusandur 1tk
potentsial 1 tk
takisti 2tk
led 1tk
lcd ecran 1tk
Töö kirjeldus:
Seadistamise funktsioonis (setup) initsialiseeritakse LCD-ekraan, servomootor ja pindade olekud. LCD-ekraanil on 16 veergu ja 2 rida. Servomootor on ühendatud digitaalpinnale 9. ECHO_PIN ja TRIG_PIN seatakse vastavalt sissetulekuks (INPUT) ja väljundiks (OUTPUT). Lisaks avatakse seerialühendus kiirusega 9600 baudi. Põhiloopis (loop) saadetakse ultrahelisignaal. Kõigepealt pannakse TRIG_PIN kõrgele, et saata ultrahelisignaal. Seejärel mõõdetakse kaugust meetodi measureDistance abil ja saadud kaugus saadetakse meetodisse distanceFr. Seejärel pannakse TRIG_PIN madalale ja oodatakse 500 millisekundit. meetod measureDistance mõõdab ultrahelisignaali vastuvõtuks kuluvat aega. Kõigepealt seatakse TRIG_PIN madalale, oodatakse 2 mikrosekundit ja seejärel pannakse TRIG_PIN kõrgele 10 mikrosekundiks. Seejärel pannakse TRIG_PIN jälle madalale. PulseIn funktsioon mõõdab aega, mis kulub ECHO_PIN-i kõrgele olekule minekuks. Selle aja põhjal arvutatakse kaugus, kuna ultrahelilaine levib umbes 34 cm/ms. Mõõdetud kaugus tagastatakse. meetodis distanceFr juhitakse servomootorit ja LED-i vastavalt mõõdetud kaugusele. Kui kaugus on vahemikus 4 kuni 40 cm, liigutatakse servomootorit ja lülitatakse LED sisse. Seejärel oodatakse 1 sekund, liigutatakse servomootorit teise asendisse ja kuvatakse LCD-ekraanile sõnum “HAVE A NICE DAY” 2 sekundiks. Seejärel tühjendatakse ekraan. Kui kaugus ei ole antud vahemikus, liigutatakse servomootorit nullasendisse ja LED välja.