ik heb een probleem, ik heb voor mijn project op school arduino gebruikt en nu wil de groep waar ik mee werk dat ik een drukknop aansluit en dat ik de motor sneller laat draaien. ik heb een steppermotor code maar die moet ik aanpassen zodat ik met een druk op de knop hem een kant op kan laten draaien en nog een druk op de knop de andere kant op of een schakelaar
ik heb nog maar 2 weken om het te maken omdat ik dan voor de opdrachtgever moet presenteren
dit is mijn sketch
int Pin0 = 10;
int Pin1 = 11;
int Pin2 = 12;
int Pin3 = 13;
int _step = 0;
boolean dir = true;// gre
void setup()
{
pinMode(Pin0, OUTPUT);
pinMode(Pin1, OUTPUT);
pinMode(Pin2, OUTPUT);
pinMode(Pin3, OUTPUT);
}
void loop()
{
switch(_step){
case 0:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, HIGH);
break;
case 1:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, HIGH);
break;
case 2:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, LOW);
break;
case 3:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, LOW);
break;
case 4:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
break;
case 5:
digitalWrite(Pin0, HIGH);
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
break;
case 6:
digitalWrite(Pin0, HIGH);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
break;
case 7:
digitalWrite(Pin0, HIGH);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, HIGH);
break;
default:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
break;
}
if(dir){
_step++;
}else{
_step--;
}
if(_step>7){
_step=0;
}
if(_step<0){
_step=7;
}
delay(1);
}
ik heb wel een sketch van een drukknop maar ik wil het liefst dat ik het met een schakelaar kan maken.
dit is de sketch die ik heb gevonden voor een drukknop alleen daar gaat het over een led lampje wat het aanstuurt
int DrukknopPin = 2; // de digitale poort waarop de drukknop is aangesloten.
int LedPin = 5; // de digitale poort waarop de LED is aangesloten.
int Ledstatus = HIGH; // de huidige (start) status van de LedPin.
int uitlezing; // de huidige uitlezing van de LedPin.
int vorigestatus = LOW; // de vorige (oude) status van de LedPin.
long tijd = 0; // de laatste tijd wanneer de LedPin is geschakeld.
long terugvaltijd = 200; // de terugvaltijd, hoger instellen als de LED knippert.
void setup()
{
pinMode(DrukknopPin, INPUT);
pinMode(LedPin, OUTPUT);
}
void loop()
{
uitlezing = digitalRead(DrukknopPin);
// als de ingang van de drukknop van LAAG naar HOOG is gegaan en we hebben
// lang genoeg gewacht om de ruis te onderdrukken, schakel de LedPin en onthoud
// de tijd.
if (uitlezing == HIGH && vorigestatus == LOW && millis() - tijd > terugvaltijd) {
if (Ledstatus == HIGH) {
Ledstatus = LOW; // Ledstatus = HOOG, de LED moet uit.
} else {
Ledstatus = HIGH; // Ledstatus = LAAG, de LED moet aan.
}
tijd = millis();
}
digitalWrite(LedPin, Ledstatus); // zet LED aan of uit.
vorigestatus = uitlezing;
}