This is an old revision of the document!


Projekt 5 Mootorite juhtimine (2 näidet)

/*
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);
}

Näide #5.2 DC mootor

/*
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);
  }
}
et/arduino/sensorss/project3.1482934763.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
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