Coin op pooltafel herstellen met arduino
33 berichten
• Pagina 3 van 4 • 1, 2, 3, 4
Re: Coin op pooltafel herstellen met arduino
aan de hand van de info die ik heb verkregen heb ik het zo aan het werk gekregen.
edit
de punten die jij aanhaalt heb ik er uit gegooid het progje met 2 knoppen werkt maar bij toevoeging van de 3de knop werkt totaal niks meer
edit
de punten die jij aanhaalt heb ik er uit gegooid het progje met 2 knoppen werkt maar bij toevoeging van de 3de knop werkt totaal niks meer
Advertisement
Re: Coin op pooltafel herstellen met arduino
misschien ook even vertellen wat de bedoeling is van de derde knop.
deze moet de motor laten stoppen met draaien zodat dan alles terug van vooraf aan kan beginnen
deze moet de motor laten stoppen met draaien zodat dan alles terug van vooraf aan kan beginnen
Re: Coin op pooltafel herstellen met arduino
[code2=]
op deze manier werkt het met 2 knoppen en delay.
nu zou ik dus nog mijn delay moeten veranderen in de derde knop.
de foutjes zijn eruit ondertussen enkel de knoppen nog hoe kan ik dit verhelpen dat eerst knop 2 en dan knop 3 word bekeken ?
[/code2]// Map our pins to constants to make things easier to keep track of
const int pwmA = 3;
const int brakeA = 9;
const int dirA = 12;
const int knop2 = 2;
const int led =10;
const int knop1= 4;
// The amount of steps for a full revolution of your motor.
// 360 / stepAngle
int buttonState1 = 0;
int buttonState2 = 0;
void setup() {
// Set the RPM of the motor
;
pinMode(led, OUTPUT);
pinMode(knop1, INPUT);
pinMode(knop2, INPUT);
digitalWrite(led, LOW);
buttonState1 = LOW;
buttonState2 = LOW;
// Turn off the brakes
pinMode(brakeA, OUTPUT);
pinMode(pwmA, OUTPUT);
}
void loop() {
//
// kijk of de eerste knop al is ingedrukt
//
if (buttonState1 != HIGH) {
//
// nee dus is dit de begin situatie dus lees de eerste knop
//
buttonState1 = digitalRead(knop1);
//
// en controleer of hij nu wel aan is
//
if (buttonState1 == HIGH) {
//
// ja dus kan de LED aan
//
digitalWrite(led, HIGH);
}
} else {
//
// de buton was al ingedrukt geweest dus nu kijken of de tweede knop wordt ingedrukt
//
buttonState2 = digitalRead(knop2);
if (buttonState2 == HIGH) {
//
// Ja dus nu de stappenmotor activeren
//
digitalWrite (brakeA, LOW);
digitalWrite (dirA, HIGH);
analogWrite (pwmA, 255);
delay (1850);
digitalWrite (brakeA, HIGH);
digitalWrite (dirA, LOW);
//
// en zet alles weer in de begin situatie
//
digitalWrite(led, LOW);
buttonState1 = LOW;
buttonState2 = LOW;
}
}
}
op deze manier werkt het met 2 knoppen en delay.
nu zou ik dus nog mijn delay moeten veranderen in de derde knop.
nicoverduin schreef:Waarom doe je een digitalWrite(knop2, LOW); op een INPUT in de setup()?
Dit vind ik ook een knappe : digitalWrite(dirA, OUTPUT);
pmwA is niet gedefinieerd als OUTPUT?
En volgens de code in de loop() kan ik zowel knop2 als knop3 tegelijk verwerken?
de foutjes zijn eruit ondertussen enkel de knoppen nog hoe kan ik dit verhelpen dat eerst knop 2 en dan knop 3 word bekeken ?
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Coin op pooltafel herstellen met arduino
Maar wat knop 1 en 3 verder moeten doen is mij niet duidelijk.
cpp code
cpp code
// Map our pins to constants to make things easier to keep track ofProbeer dit eens..
const int pwmA = 3;
const int brakeA = 9;
const int dirA = 12;
const int knop2 = 2;
const int led = 10;
const int knop1 = 4;
const int knop3 = 5;
int buttonState1;
int buttonState2;
int buttonState3;
void setup() {
// Set the RPM of the motor
pinMode(led , OUTPUT);
pinMode(knop1 , INPUT);
pinMode(knop2 , INPUT);
// Pinfs for brake and motor
pinMode(brakeA , OUTPUT);
pinMode(pwmA , OUTPUT);
digitalWrite(led, LOW);
//
// set initial state of buttons
//
buttonState1 = LOW;
buttonState2 = LOW;
buttonState3 = LOW;
}
void loop() {
//
// kijk of de eerste knop al is ingedrukt
//
if (buttonState1 != HIGH) {
//
// nee dus is dit de begin situatie dus lees de eerste knop
//
buttonState1 = digitalRead(knop1);
//
// en controleer of hij nu wel aan is
//
if (buttonState1 == HIGH) {
//
// ja dus kan de LED aan
//
digitalWrite(led, HIGH);
}
} else {
//
// de buton was al ingedrukt geweest dus nu kijken of de tweede knop wordt ingedrukt
//
buttonState2 = digitalRead(knop2);
if (buttonState2 == HIGH) {
//
// Ja dus nu de motor
//
digitalWrite(brakeA , LOW); // rem eraf
digitalWrite(dirA , HIGH); // start de motor richting
analogWrite (pwmA , 255); // maximale aansturing
delay(1850); // ff wachten
analogWrite(pwmA , 0); // lijkt me dat je eerst de motor afzet voordat de rem erop gaat
digitalWrite(brakeA , HIGH); // rem erop
digitalWrite(dirA , LOW); // richting uit (voor zover dit nodig is)
} else {
//
// kijk of de eerste knop 3 al is ingedrukt
//
if (buttonState3 != HIGH) {
//
// nee dus is dit de begin situatie dus lees de eerste knop
//
buttonState3 = digitalRead(knop3);
//
// en controleer of hij nu wel aan is
//
if (buttonState3 == HIGH) {
//
// ja dus kan de LED aan
//
digitalWrite(led, HIGH);
//
// tja en wat hij hier moet doen is mij onduidelijk
//
// en zet alles weer in de begin situatie
//
digitalWrite(led, LOW);
buttonState1 = LOW;
buttonState2 = LOW;
buttonState3 = LOW;
}
}
}
}
}
Laatst gewijzigd door nicoverduin op 24 Aug 2014, 15:42, in totaal 1 keer gewijzigd.
Re: Coin op pooltafel herstellen met arduino
de bedoeling is eigenlijk
knop 1 word geactiveerd
dan pas word de led aangeschakeld en knop 2 actief
na het induwen van knop 2 gaat de motor werken totdat de as knop 3 induwd
waarna de motor stopt en de led uitgaat en daarna alles terug van vooraf aan moet beginnen
knop 1 word geactiveerd
dan pas word de led aangeschakeld en knop 2 actief
na het induwen van knop 2 gaat de motor werken totdat de as knop 3 induwd
waarna de motor stopt en de led uitgaat en daarna alles terug van vooraf aan moet beginnen
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Coin op pooltafel herstellen met arduino
Dan heb je nog ff een uitdaging
Re: Coin op pooltafel herstellen met arduino
Ja idd knop 1 en knop 2 is geen probleem knop 3 daarintegen krijg ik niet aan het werken
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Coin op pooltafel herstellen met arduino
Bij dit soort vragen is het ten eerste van belang dat:
a) je weet of die schakelaar wel werkt....
b) of het een active pull-up of pull-down is...
Met andere woorden hoe weetje of de schakelaar wel werkt? gemeten?
@edit: ik heb de code ff veranderd wanneer hij bepaalde zaken weer reset.
a) je weet of die schakelaar wel werkt....
b) of het een active pull-up of pull-down is...
Met andere woorden hoe weetje of de schakelaar wel werkt? gemeten?
@edit: ik heb de code ff veranderd wanneer hij bepaalde zaken weer reset.
Re: Coin op pooltafel herstellen met arduino
De schakelaars zijn allemaal doorgemeten met een multimeter en werken.
Overal zitten weerstanden tussen de schakelaars en de arduino ik zal even een foto uploaden van alle aansluitingen
Overal zitten weerstanden tussen de schakelaars en de arduino ik zal even een foto uploaden van alle aansluitingen
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Coin op pooltafel herstellen met arduino
Ja maar maak je gebruik van pull- up weerstanden naar 5V ? of pull-down naar GND? M.a.w. dat is nodig om te weten hoe je weet of de schakelaar is ingedrukt.
33 berichten
• Pagina 3 van 4 • 1, 2, 3, 4
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast