Programació prototip sostenible
- ClickOn
- 20 ene 2020
- 2 Min. de lectura
Actualizado: 24 ene 2020
En aquest apartat, podrem veure com s'ha programat l'Arduino per tal que funcioni. Simplement, caldrà seguir els següents passos:
1- Descarregar el programa d'Arduino.
2- Enganxar el programa comentat a continuació.
3- Passar el contingut a l'Arduino.
4- Comprovar que l'Arduino funciona correctament.
#include <Servo.h>
// Aquesta constant no varia:
const int buttonPin = 7; // El passador al qual s’uneix el polsador
const int ledPin = 13; // El pin al que està unit el LED
// Variables will change:
int buttonPushCounter = 0; // Comptador per al nombre de polsades de botons
int buttonState = 0; // Estat actual del botó
int lastButtonState = 0; // Estat anterior dels botons
float valor1; //Valor de lectura potenciòmetre
float valor2;
float valor3;
float valor4;
float valor5;
float pos1 = 0; //Posició del servo
float pos2 = 0;
float pos3 = 0;
float pos4 = 0;
float pos5 = 0;
Servo myservo1; //Crea el objete servo
Servo myservo2;
void setup() {
//Inicialitzar el passador del botó com a entrada:
pinMode(buttonPin, INPUT);
//Iniciar un LED com a OUTPUT:
pinMode(ledPin, OUTPUT);
//Iniciar comunicació de sèrie:
Serial.begin(9600);
myservo1.attach(4); //Vincula el servo al pin
myservo2.attach(3);
}
void loop() {
//llegiu el passador d’entrada del polsador:
buttonState = digitalRead(buttonPin);
//Comparar el botó de l'estat amb l'estat previ
if (buttonState != lastButtonState) {
//Si l'estat ha canviat, incrementa el comptador
if (buttonState == HIGH) {
//Si l'estat actual és ALT, el botó passa de desactivat a:
buttonPushCounter++;
Serial.println("on");
Serial.print("number of button pushes: ");
Serial.println(buttonPushCounter);
valor1=1024;
} else {
//Si l'estat actual és BAIX, el botó passa d'activat a desactivat
Serial.println("off");
valor1=0;
}
//Retardem una mica per evitar rebotar
delay(50);
}
//Desa l'estat actual com a últim estat, per a la propera vegada a través del bucle
lastButtonState = buttonState;
//Encén el LED cada quatre botons polsant, comprovant el mòdul del...
//Comptador de botons. La funció mòdul us dóna la resta de...
//Divisió de dos números
if (buttonPushCounter % 4 == 0) {
digitalWrite(ledPin, HIGH);
pos1=180;
} else {
digitalWrite(ledPin, LOW);
pos1=0;
}
//Varia la posició de 0 a 180, amb esperes de 15ms
pos1= (valor1/1024)*180;
pos2= (valor2/1024)*180;
pos3= (valor3/1024)*180;
pos4= (valor4/1024)*180;
pos5= (valor5/1024)*180;
myservo1.write(pos1);
myservo2.write(pos1);
}
コメント