This is an old revision of the document!
/* Nimetus: Näide #5.1 Servomootor Kirjeldus: Servomootori juhtimine PWM signaaliga */ // Kaasame vajalikud teegid #include <Servo.h> Servo mootor; // tekitame teegist ühe servo objekti const int pote = A1; // määrame potentsiomeetri sisendviigu void setup() { mootor.attach(5); //servo objekti sidumine kindla viiguga } void loop() { //tekitame muutuja ja kasutame map funktsiooni, et väärtused sobivasse vahemikku teisendada int servoAsend = map(analogRead(pote),0,1023,0,180); //servo mootorile positsiooni andmine vahemikus 0-180 (üldiselt vastab väärtus mootori pöördenurga kraadidele) mootor.write(servoAsend); }
/* Nimetus: Näide #5.1 DC mootori juhtimine Kirjeldus: Programm demonstreerib DC mootori juhtimist L9110 draiveri näitel */ //Määrame viigud mootori draiveri juhtimiseks. // Mootori liikumissuund sõltub ka mootori ühendamise polaarsusest. const int vasak_A = 13; //draiveri viik A-IA const int vasak_B = 12; //draiveri viik A-IB const int parem_A = 11; //draiveri viik B-IA const int parem_B = 10; //draiveri viik B-IA void setup() { //Seadista mootori draiverit juhtivad viigud väljundiks pinMode(vasak_A,OUTPUT); pinMode(vasak_B,OUTPUT); pinMode(parem_A,OUTPUT); pinMode(parem_B,OUTPUT); mootorid(0,0); //peata mootorid delay(2000); //väike viide, et robot laua pealt kohe plehku ei paneks } void loop() { mootorid(1,1); //robot sõidab otse delay(2000); //viite ajal robot jääb liikuma eelnevalt määratud suunda mootorid(-1,1); // robot keerab vasakule delay(500); //viite ajal robot jääb liikuma eelnevalt määratud suunda } //Funktsioon mootori liikumissuundade määramiseks void mootorid(int vasak, int parem){ //vasak mootor if(vasak == 1){ digitalWrite(vasak_A,HIGH); digitalWrite(vasak_B,LOW); } else if(vasak == -1){ digitalWrite(vasak_A,LOW); digitalWrite(vasak_B,HIGH); } else{ digitalWrite(vasak_A,LOW); digitalWrite(vasak_B,LOW); } //parem mootor if(parem == 1){ digitalWrite(parem_A,HIGH); digitalWrite(parem_B,LOW); } else if(parem == -1){ digitalWrite(parem_A,LOW); digitalWrite(parem_B,HIGH); } else{ digitalWrite(parem_A,LOW); digitalWrite(parem_B,LOW); } }