NLT

FME Les 8: Servo met potentionmeter

_8_Servo_met_pot_bbDit is de instructable over les 8: Servo met pot!

Wat heb je nodig?

  1. Het eerste plaatje (links bovenin): Een 10Kohm potmeter.
  2. Het tweede plaatje (links onderin): 5 male male kabeltjes.
  3. Het derde plaatje (rechts): Een servo motortje.
  4. Als laatste & het belangrijkste: De Arduino!

Wat is een potmeter?
Een potentiometer (ook wel potmeter genoemd) is een spanningsdeler. Een spanningsdeler is een schakeling die een elektrische spanning in delen splitst.

Wat is een servomotortje?
Een servomotor of servomechanisme (vaak afgekort tot servo) is een apparaat om automatisch een mechanisch systeem te regelen, zonder directe mechanische verbinding.

In deze les gaan we dingen laten bewegen. Bouw het cirquit na en upload het programma. Bestuur een servo met een potmeter. Een servo is een bijzonder apparaatje.
Het beweegt 180 graden in het rond en kan daarbinnen elke stand voor je
aannemen. Voor de besturing heb je een bibliotheek nodig. Dit zit voor een
servo standaard in de software, hierdoor wordt het schrijven van de sketch
een stuk makkelijker. Je roept een servo op met: Sketch-Bibliotheek importeren-Servo.

De code die we gebruiken om de pot te laten meten en de servo te laten bewegen:

*/

#include <Servo.h>

Servo myservo;

int potpin = 0;  // analoge pin wordt gebruikt door de potmeter
int val;    // lees de variabele waarde van de potmeter

void setup()
{
myservo.attach(9);  // de servo is verbonden met pin 9
}

void loop()
{
val = analogRead(potpin);            // lees de waarde van de potmeter (waarde tussen 0 en 1023)
val = map(val, 0, 1023, 0, 179);     // reken de waarde om voor de servo (waarde tussen 0 en 180)
myservo.write(val);                  // sets the servo position according to the scaled value
delay(15);                           // wacht tot de servo er is gekomen
}

/*
Handig voor de besturing van een raam of lamellen op afstand
*/
Alles wat tussen /* en */ staat doet niet mee in het programma.

Uitleg bij de code:
#include <Servo.h>
Dit betekent dat hij de servo is herkent.

int potpin = 0;  // analoge pin wordt gebruikt door de potmeter
int val;    // lees de variabele waarde van de potmeter
Dit zijn de variable die worden gemeten door de Arduino.
int val; is de waarde die word gemeten.

Servo myservo;
Dit betekent de naam van je Servo.

Nu volgt de Setup:
myservo.attach(9);  // de servo is verbonden met pin 9
Dit betekent letterlijk dat de servomoter verbonden is met pin 9.

Nu volgt de loop:
val = analogRead(potpin);            // lees de waarde van de potmeter (waarde tussen 0 en 1023)
Er wordt een waarde gemeten door de potmeter, die tussen de o en 1023 ligt.

val = map(val, 0, 1023, 0, 179);     // reken de waarde om voor de servo (waarde tussen 0 en 180)
Map is een programma binnen de software  van de potmeter die de waarde van de potmeter omrekend naar een waarde die de Servo ook kan waarnemen. Die waarde moet namelijk tussen de 0 en 180 zijn.

myservo.write(val);                  // sets the servo position according to the scaled value
delay(15);                           // wacht tot de servo er is gekomen
Nu is de waarde overgekomen van de pot naar de servo. Er staat dat het een delay is van 15. Dit is de wacht tijd tot de servo alle waardes heeft gelezen.

Nu is de loop beëindigt en zijn alle waardes van de pot en servo meter overgekomen. En als het goed is kun je die dan in het Arduino programma aflezen.

Gemaakt door Laura Austin & Stef Samsom.

 

Leave a Reply