Project 05 board

 

 

 

Project 05 componenten

 #

 

 

 

Project 05 circuit

 

 

 

 

De pwm commando's waarmee je de servomotor een bepaalde stand geef.
 
 
De pwm commando's waarmee je
de servomotor een bepaalde stand geef.
 
 
 

Project 5 Mood Cue blz 63.          terug naar de inleiding

Een schets met een servomotor en potentiometer
Met de stand van de potentiometer bepaal je de hoek van de servomotor
Met de map functie wordt de 10 bit waarde van de potentiometer omgezet in waarden tussen 0 tot 174.
Mijn servomotortje werkt goed tussen de 0 en 174 graden
 
Tussen gnd en 5 volt staat een electrolytische condensator van 100 microfarad om de spanninsdaling op te vangen
die kan ontstaan door de startstroom van de servomotor.
 
Aanpassingen van code en hardware
Een tweede servomotor aansluiten die, bij het draaien aan de potentiometer, de andere kant op draait.

 

 

// De Servo bibliotheek invoegen  
// Hiermee geef je aan dat de schets gebruik mag maken van de methodes in de Servo lib 
// Servo is een class met methodes tbv de servomotor 
// De schets maakt gebruik van de class methodes "attach" en "write" 
 
#include <Servo.h> 
 
Servo mijnServo;  //Het object mijnServo van het type Servo declareren. 
 
//in "potWaarde" komt de met analogRead(A0); uitgelezen spanning op de arm van de potentiometer. (tussen 0 en 1023) 
  int potWaarde;  
  int hoek;       //In "hoek" komt de stand van de servomotor.  (tussen 0 en 174) 
 
void setup() { 
  // Met de object methode attach(9) verbind je de servo met pin 9. 
  // Pin 9 wordt niet geinitialiseerd !! 
  // Pin 9 is nu een "servopin" en stuurt digitale pwm commando's naar de servomotor. 
   
  mijnServo.attach(9); 
  Serial.begin(9600); 
} 
 
void loop() { 
  potWaarde = analogRead(A0); 
   
  //De inhoud van "potWaarde" naar de seriële monitor schrijven. 
  Serial.print("waarde van de potentiometer: "); 
  Serial.print(potWaarde); 
 
  //Met de map functie de 10 bit "potWaarde" omzetten naar waarden tussen 0 en 174 en in de variabele "hoek" stoppen.
 
  hoek = map(potWaarde, 0, 1023, 0, 174); 
 
  //De in de map functie berekende hoek naar de seriële monitor schrijven.
 
  Serial.print(", stand van de servo:  "); 
  Serial.println(hoek);
 
 // Hier gaat het gebeuren!!  
 // De write methode zet het getal in de variabele "hoek" (tussen 0 en 174) om naar een pwm commando 
 // die via pin 9 naar de servomotor wordt gestuurd.
 // Zo zal de motor een bepaalde stand tussen de 0 en 174 graden innemen. 
   
  mijnServo.write(hoek); 
 
  //Effe wachten want het servomotortje is niet zo snel. 
  delay(15); 
}