Lliurament 1c: Servo controlat amb potenciòmetre
Requisits de compleció
Oberta el dijous, 14 de novembre 2024, 00:00
Venciment: dijous, 19 de desembre 2024, 00:00
Fes el següent muntatge.

Puja el codi següent a la teva placa Arduino:
#include <Servo.h>
Servo myservo;
int potPin = A0;
int val;
void setup() {
myservo.attach(9);
}
void loop() {
val = analogRead(potPin);
val = map(val, 0, 1023, 0, 179);
myservo.write(val);
delay(15);
}
A aquest exemple li hem afegit:
- Dues variables:
potpinés el número del Pin usat per al potenciòmetre ivalper al valor de lectura des del potenciòmetre. - A
loop()comencem llegint el valor del potenciòmetre. - Els valors del potenciòmetre que llegim són de 0 a 1023, però necessitem valors de 0 a 180 per tal de controlar el servo. Per aconseguir-ho, utilitzem la funció
map(value, fromLow, fromHigh, toLow, toHigh),que serveix per ajustar els valors al rang que podem utilitzar amb el servo. Això significa que si llegim 1023 al potenciòmetre n’obtindrem 180, si en llegim 511 n’obtindrem 90, etc.
- Utilitzem una variable (
val) per establir la posició del servo. - Utilitzem un petit
delayper donar temps per girar al servo.
TASCA :
1.- Canvia el servo estàndard per un de gir continu. Usa el mateix codi, però suprimeix la funció delay. Puja’l i torna-ho a intentar. Com actuen els diferents servos i per què? Pensa per què la funció de delay és necessària quan es controla el servo estàndard però no ho és amb el continu.
2.- Què més pots utilitzar per controlar els servos i què els pots afegir per tal que siguin més útils?
A la tramesa contesta les preguntess, i puja una captura de pantalla amb el codi de la tasca 2.
Resum de la qualificació
| Ocult per a l'estudiantat | Sí |
|---|---|
| Participants | 19 |
| S'han tramès | 0 |
| Necessiten qualificació | 0 |
| Temps restant | La tasca ha vençut |