Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
et:distancelab:arduino:kit [2025/04/16 08:26] raivo.sellet:distancelab:arduino:kit [2025/05/23 13:52] (current) raivo.sell
Line 6: Line 6:
  
 Näidiskood: Näidiskood:
-<code>+<code c> 
 +#include <LiquidCrystal.h> 
 +#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;  
 +
 +//Ventilaator
 +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    = 1;
 +const int nuppDOWN  = 2;
 +const int nuppLEFT  = 3;
 +const int nuppSELECT = 4;
 +const int nuppNONE  = 5;
 + 
 +/* Globaalsed muutujad */
 +// Vajutatud nupu muutuja konstandi salvestamine
 +int vajutatudNupp;
 +// Aanaloogsisendi muutuja väärtuse salvestamine
 +int nupuSisend; 
 +
 +
 +void setup() {
 +    lcd.begin(16, 2);
 +    lcd.print("Test algab...");
 +    //Ventilaatori setup
 +    pinMode(BIN2, OUTPUT);
 +    
 +    //Mootori setup
 +    pinMode(AIN1, OUTPUT);
 +    pinMode(AIN2, OUTPUT);
 +    pinMode(PWMA, OUTPUT);
 +
 +  //  pinMode(button1, INPUT_PULLUP);
 +  //  pinMode(button2, INPUT_PULLUP);
 +    myServo.attach(servoPin);
 +    delay(2000);
 +    lcd.clear();
 +}
 +
 +void loop() {
 +    // ______________________LCD ekraan test
 +    lcd.setCursor(0, 0);
 +    lcd.print("LCD OK!");
 +
 +    // _____________________Servo mootor test_________________________
 +    lcd.setCursor(0, 1);
 +    lcd.print("Servo liigub...");
 +    myServo.write(0);
 +    delay(1000);
 +    myServo.write(90);
 +    delay(1000);
 +    myServo.write(180);
 +    delay(1000);
 +  
 +  
 +    //________________________ Ventilaatori test________________________
 +    // Käivita ventilaator
 +    lcd.clear();
 +    lcd.setCursor(0, 0);
 +    lcd.print("Vent ON");
 +    digitalWrite(BIN2, HIGH); // Lülita mootor sisse
 +    delay(3000); // 5 sekundit töötab
 +    
 +    // Peata ventilaator
 +    digitalWrite(BIN2, LOW); // Lülita mootor välja
 +    delay(3000); // 5 sekundit paus
 +
 +    // __________________________Väike mootor test__________________________
 +    lcd.setCursor(0, 0);
 +    lcd.print("Ratas ON");
 +  // 1️⃣ Mootor liigub EDASI täiskiirusel
 +  digitalWrite(AIN1, HIGH);
 +  digitalWrite(AIN2, LOW);
 +  analogWrite(PWMA, 255); // 255 = max kiirus
 +  delay(5000);  // 5 sekundit edasi
 +
 +  // 2️⃣ Peatume 2 sekundiks
 +  analogWrite(PWMA, 0); // Kiirus 0 (mootor seisab)
 +  delay(2000);
 +
 +  // 3️⃣ Mootor liigub TAGASI poolkiirusel
 +  digitalWrite(AIN1, LOW);
 +  digitalWrite(AIN2, HIGH);
 +  analogWrite(PWMA, 128); // 128 = 50% kiirus
 +  delay(5000);  // 5 sekundit tagasi
 +
 +  // 4️⃣ Peatume uuesti 2 sekundiks
 +  analogWrite(PWMA, 0); // Mootor seisab
 +  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(); // Puhastab ekraani ja liigutab kursori tagasi algasendisse
 + 
 +    lcd.print("ADC: "); // Teksti kuvamine ekraanil
 + 
 +    lcd.print(nupuSisend); // Muutuja väärtuse kuvamine ekraanil
 + 
 +    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
 + nupuSisend = analogRead(A0);
 + if (nupuSisend < 50)   return nuppRIGHT;
 + 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 "nuppNONE"
 + return nuppNONE;
 +}
  
 </code> </code>
et/distancelab/arduino/kit.1744792009.txt.gz · Last modified: 2025/04/16 08:26 by raivo.sell
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0