Étape 3: Arduino
Image 1
Je n’ai pas les en-têtes pour le Ardumotor quand je l’ai acheté de Sparkfun et je recommande fortement vous faire car il rend le système beaucoup plus facile de débogage. Ce que j’ai fait quelques épingles droites en-tête au Conseil d’administration de soudure « upside down » afin que le Conseil s’engagent dans l’Arduino.
Image 2
J’ai soudé un bouton poussoir pour 5V le sens où il est enfoncé. Quand il est déprimé, broche 2 obtient un signal et compte combien de fois la touche a été enfoncée. Si c’est une presse même, axe 12 allume la partie verte de LED rouge verte bleue. Si c’est un nombre impair, broche 13 la partie rouge de la LED s’allume.
Image 3
Je n’avais vraiment aucun désir de joindre le circuit dans une boîte à cause de la paresse, et étant donné que je n’avais pas un seul qui traînent. Alors, j’ai juste collé l’Arduino et Ardumoto sur une vieille disquette avec des entretoises. L’alimentation que j’utilise est évaluée à 12 VCC à 1,9 ampères.
Code
Le code ci-dessous est ce que j’ai utilisé pour obtenir cette chose à travailler.
const int buttonPin = 2 ;
const int ledPin1 = 13 ;
const int ledPin2 = 12 ;
const int motorPWM = 11 ;
const int motorDirection = 10 ;
int buttonPushCounter = 0 ;
buttonState int = 0 ;
int lastButtonState = 0 ;
void setup() {}
pinMode (buttonPin, entrée) ;
pinMode (ledPin1, sortie) ;
pinMode (ledPin2, sortie) ;
pinMode (motorPWM, sortie) ;
pinMode (motorDirection, sortie) ;
}
void loop() {}
buttonState = digitalRead(buttonPin) ;
digitalWrite (ledPin1, basse) ;
digitalWrite (ledPin2, basse) ;
digitalWrite (motorDirection, basse) ;
Si (buttonState! = lastButtonState) {}
Si (buttonState == HIGH) {}
buttonPushCounter ++ ;
}
lastButtonState = buttonState ;
}
Si (buttonPushCounter % 2 == 0) {}
digitalWrite (ledPin1, basse) ;
digitalWrite (ledPin2, HIGH) ;
Si (digitalRead(buttonPin) == HIGH) {}
digitalWrite (motorDirection, HIGH) ;
}
}
else {}
Si (buttonPushCounter % 2! = 0) {}
digitalWrite (ledPin2, basse) ;
digitalWrite (ledPin1, HIGH) ;
Si (digitalRead(buttonPin) == HIGH) {}
digitalWrite (motorDirection, HIGH) ;
}
}
}
Delay(50) ;
}