
#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.