Coin op pooltafel herstellen met arduino

Hardware geleverd door Arduino
Berichten: 30
Geregistreerd: 25 Nov 2012, 21:05

Re: Coin op pooltafel herstellen met arduino

Berichtdoor FL3x » 24 Aug 2014, 17:02

nicoverduin schreef: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.


pull down naar gnd met de foto te maken juist zag ik dat de weerstand van de derde knop niet goed verbonden was :oops:
na deze tegoei verbonden te hebben en doormiddel van deze code werkt het nu wel met 3knoppen [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;
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
        
        } 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
                    //
            
            analogWrite(pwmA , 0); // lijkt me dat je eerst de motor afzet voordat de rem erop gaat
            digitalWrite(brakeA , HIGH); // rem erop
            digitalWrite(dirA , LOW);
            
            

                    // en zet alles weer in de begin situatie
                    //
                    digitalWrite(led, LOW);
                    buttonState1 = LOW;
                    buttonState2 = LOW;
                    buttonState3 = LOW;
 
                }
            }
        }
    }
}

[/code2]

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Coin op pooltafel herstellen met arduino

Berichtdoor nicoverduin » 24 Aug 2014, 17:56

als je code2= veranderd in code2=cpp krijg je de code er zo uit te zien. Mooi dat het is opgelost.
cpp code
// 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;
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

} 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
//

analogWrite(pwmA , 0); // lijkt me dat je eerst de motor afzet voordat de rem erop gaat
digitalWrite(brakeA , HIGH); // rem erop
digitalWrite(dirA , LOW);



// en zet alles weer in de begin situatie
//
digitalWrite(led, LOW);
buttonState1 = LOW;
buttonState2 = LOW;
buttonState3 = LOW;

}
}
}
}
}
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 30
Geregistreerd: 25 Nov 2012, 21:05

Re: Coin op pooltafel herstellen met arduino

Berichtdoor FL3x » 24 Aug 2014, 18:25

Bedankt voor de hulp :D

Vorige

Terug naar Arduino hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 38 gasten