This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:distancelab:arduino:kit [2025/04/16 08:26] – raivo.sell | et:distancelab:arduino:kit [2025/05/23 13:52] (current) – raivo.sell | ||
|---|---|---|---|
| Line 6: | Line 6: | ||
| Näidiskood: | Näidiskood: | ||
| - | < | + | < |
| + | #include < | ||
| + | #include <Servo.h> | ||
| + | |||
| + | // LCD ekraan (ühendatud tavalise 16x2 LCD-ga) | ||
| + | LiquidCrystal lcd(8, 9, 4, 5, 6, 7); | ||
| + | |||
| + | // Servo mootor | ||
| + | Servo myServo; | ||
| + | int servoPin = 10; | ||
| + | |||
| + | // | ||
| + | int BIN2 = 2; // DRV8833 mootori draiveri BIN2 | ||
| + | |||
| + | // Ratta mootor | ||
| + | const int AIN1 = 12; // AIN1 ühildub Arduino pin 12 | ||
| + | const int AIN2 = 11; // AIN2 ühildub Arduino pin 11 | ||
| + | const int PWMA = 3; // Mootori kiiruse reguleerimine (PWM) | ||
| + | |||
| + | // Nupude konstandi defineerimine | ||
| + | const int nuppRIGHT = 0; | ||
| + | const int nuppUP | ||
| + | const int nuppDOWN | ||
| + | const int nuppLEFT | ||
| + | const int nuppSELECT = 4; | ||
| + | const int nuppNONE | ||
| + | |||
| + | /* Globaalsed muutujad */ | ||
| + | // Vajutatud nupu muutuja konstandi salvestamine | ||
| + | int vajutatudNupp; | ||
| + | // Aanaloogsisendi muutuja väärtuse salvestamine | ||
| + | int nupuSisend; | ||
| + | |||
| + | |||
| + | void setup() { | ||
| + | lcd.begin(16, | ||
| + | lcd.print(" | ||
| + | // | ||
| + | pinMode(BIN2, | ||
| + | | ||
| + | //Mootori setup | ||
| + | pinMode(AIN1, | ||
| + | pinMode(AIN2, | ||
| + | pinMode(PWMA, | ||
| + | |||
| + | // pinMode(button1, | ||
| + | // pinMode(button2, | ||
| + | myServo.attach(servoPin); | ||
| + | delay(2000); | ||
| + | lcd.clear(); | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | // ______________________LCD ekraan test | ||
| + | lcd.setCursor(0, | ||
| + | lcd.print(" | ||
| + | |||
| + | // _____________________Servo mootor test_________________________ | ||
| + | lcd.setCursor(0, | ||
| + | lcd.print(" | ||
| + | myServo.write(0); | ||
| + | delay(1000); | ||
| + | myServo.write(90); | ||
| + | delay(1000); | ||
| + | myServo.write(180); | ||
| + | delay(1000); | ||
| + | | ||
| + | | ||
| + | // | ||
| + | // Käivita ventilaator | ||
| + | lcd.clear(); | ||
| + | lcd.setCursor(0, | ||
| + | lcd.print(" | ||
| + | digitalWrite(BIN2, | ||
| + | delay(3000); | ||
| + | | ||
| + | // Peata ventilaator | ||
| + | digitalWrite(BIN2, | ||
| + | delay(3000); | ||
| + | |||
| + | // __________________________Väike mootor test__________________________ | ||
| + | lcd.setCursor(0, | ||
| + | lcd.print(" | ||
| + | // 1️⃣ Mootor liigub EDASI täiskiirusel | ||
| + | digitalWrite(AIN1, | ||
| + | digitalWrite(AIN2, | ||
| + | analogWrite(PWMA, | ||
| + | delay(5000); | ||
| + | |||
| + | // 2️⃣ Peatume 2 sekundiks | ||
| + | analogWrite(PWMA, | ||
| + | delay(2000); | ||
| + | |||
| + | // 3️⃣ Mootor liigub TAGASI poolkiirusel | ||
| + | digitalWrite(AIN1, | ||
| + | digitalWrite(AIN2, | ||
| + | analogWrite(PWMA, | ||
| + | delay(5000); | ||
| + | |||
| + | // 4️⃣ Peatume uuesti 2 sekundiks | ||
| + | analogWrite(PWMA, | ||
| + | delay(2000); | ||
| + | lcd.clear(); | ||
| + | |||
| + | |||
| + | // _____________________________Nupud test___________________ | ||
| + | /* Kutsub välja funktsiooni kontrolliNuppe | ||
| + | ja salvestab tagastatud väärtuse muutujasse */ | ||
| + | vajutatudNupp = kontrolliNuppe(); | ||
| + | |||
| + | // Kontrollib kas mõni nupp on alla vajutatud | ||
| + | if(vajutatudNupp < nuppNONE) | ||
| + | { | ||
| + | lcd.clear(); | ||
| + | |||
| + | lcd.print(" | ||
| + | |||
| + | lcd.print(nupuSisend); | ||
| + | |||
| + | delay(500); // Lühike viide, et ekraanil väärtust liiga kiirelt ei uuendataks | ||
| + | } | ||
| + | |||
| + | |||
| + | | ||
| + | } | ||
| + | |||
| + | // Funktsioon võtab analoogsisendi väärtuse ja võrdleb olemasolevate väärtustega. | ||
| + | // Tagastab arvu vahemikus 0 kuni 5 vastavalt defineeritud konstandile | ||
| + | int kontrolliNuppe() | ||
| + | { | ||
| + | // Salvestab muutujasse analoogväärtuse viigult A0 | ||
| + | | ||
| + | if (nupuSisend < 50) | ||
| + | if (nupuSisend < 195) return nuppUP; | ||
| + | if (nupuSisend < 380) return nuppDOWN; | ||
| + | if (nupuSisend < 555) return nuppLEFT; | ||
| + | if (nupuSisend < 790) return nuppSELECT; | ||
| + | // Kui ühtegi nuppu pole vajutatud, siis tagastatakse " | ||
| + | | ||
| + | } | ||
| </ | </ | ||