Coin op pooltafel herstellen met arduino
33 berichten
• Pagina 2 van 4 • 1, 2, 3, 4
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Coin op pooltafel herstellen met arduino
- Code: Alles selecteren
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
//
myStepper.step(200
//
// en zet alles weer in de begin situatie
//
digitalWrite(led, LOW);
buttonState1 = LOW;
buttonState2 = LOW;
}
}
}
en in de setup() dit ff toevoegen:
- Code: Alles selecteren
digitalWrite(led, LOW);
buttonState1 = LOW;
buttonState2 = LOW;
Advertisement
Re: Coin op pooltafel herstellen met arduino
Bedank voor de code en uitleg. Dit werkt zoals ik het wou
Nu een ander vraagje ik wil dit alles laten werken met een 12v auto batterij,
Moet ik dan de vin pin van de motor shield verwijderen en appart van voeding voorzien of mag deze erop blijven zitten en een voeding delen ?
Nu een ander vraagje ik wil dit alles laten werken met een 12v auto batterij,
Moet ik dan de vin pin van de motor shield verwijderen en appart van voeding voorzien of mag deze erop blijven zitten en een voeding delen ?
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Coin op pooltafel herstellen met arduino
Gewoon op dezelfde pin. Ik zou er zelf wel een elco van 1000uF tussen de + en GND zetten om storingen wat tegen te gaan door de motor pulsen.FL3x schreef:Bedank voor de code en uitleg. Dit werkt zoals ik het wou
Nu een ander vraagje ik wil dit alles laten werken met een 12v auto batterij,
Moet ik dan de vin pin van de motor shield verwijderen en appart van voeding voorzien of mag deze erop blijven zitten en een voeding delen ?
Re: Coin op pooltafel herstellen met arduino
na enkele maanden eindelijk de tijd gehad om alles te testen, maar nu blijkt de steppermotor niet de ideale oplossing te zijn, door het gewicht van de ballen draaid de stepper gewoon door. ben het nu aant proberen voor de oude dc geared motor terug te gebruiken maar dan moet ik een extra knop invoegen in het programma.
deze code werkt maar is zonder de derde knop
nu dus geprobeerd met de derde knop
maar dan werkt men hele opstelling niet meer
ik maak dus blijkbaar ergens een grote fout maar kom er niet uit,
er is mij ook verteld dat ik de derde knop (als deze is ingeduwd) zou moeten kunnen programeren dat deze zich reset ook al is deze ingeduwd.
ik ben dus volledig de draad kwijt en kan er even niet meer aan uit.
heeft er hier iemand tips of een oplossing ?
deze code werkt maar is zonder de derde knop
- Code: Alles selecteren
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(knop2, LOW);
digitalWrite(led, LOW);
buttonState1 = LOW;
buttonState2 = LOW;
// Turn off the brakes
pinMode(brakeA, OUTPUT);
digitalWrite(dirA, 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 (2000);
digitalWrite (brakeA, HIGH);
digitalWrite (dirA, LOW);
//
// en zet alles weer in de begin situatie
//
digitalWrite(led, LOW);
buttonState1 = LOW;
buttonState2 = LOW;
}
}
}
nu dus geprobeerd met de derde knop
- Code: Alles selecteren
// 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=7;
// The amount of steps for a full revolution of your motor.
// 360 / stepAngle
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
void setup() {
// Set the RPM of the motor
;
pinMode(led, OUTPUT);
pinMode(knop1, INPUT);
pinMode(knop2, INPUT);
pinMode(knop3,INPUT);
digitalWrite(knop2, LOW);
digitalWrite(led, LOW);
buttonState1 = LOW;
buttonState2 = LOW;
buttonState3 = LOW;
// Turn off the brakes
pinMode(brakeA, OUTPUT);
digitalWrite(dirA, 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 (knop1 == 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 (knop2 == HIGH) {
//
// Ja dus nu de stappenmotor activeren
digitalWrite (brakeA, LOW);
digitalWrite (dirA, HIGH);
analogWrite (pwmA, 255);}
//buttonState3 =digitalRead(knop3);
if (knop3 == HIGH){
digitalWrite (brakeA, HIGH);
digitalWrite (dirA, LOW);
//
// en zet alles weer in de begin situatie
//
digitalWrite(led, LOW);
buttonState1 = LOW;
buttonState2 = LOW;
buttonState3 = LOW;
}
}
}
maar dan werkt men hele opstelling niet meer
ik maak dus blijkbaar ergens een grote fout maar kom er niet uit,
er is mij ook verteld dat ik de derde knop (als deze is ingeduwd) zou moeten kunnen programeren dat deze zich reset ook al is deze ingeduwd.
ik ben dus volledig de draad kwijt en kan er even niet meer aan uit.
heeft er hier iemand tips of een oplossing ?
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Coin op pooltafel herstellen met arduino
Zal aan mij liggen, maar waar lees jij knop1, knop2 en knop 3?
Re: Coin op pooltafel herstellen met arduino
nicoverduin schreef:Zal aan mij liggen, maar waar lees jij knop1, knop2 en knop 3?
in het begin van de code
2 knoppen
- Code: Alles selecteren
const int pwmA = 3;
const int brakeA = 9;
const int dirA = 12;
const int knop2 = 2;
const int led =10;
const int knop1= 4;
3 knoppen
- Code: Alles selecteren
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=7;
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Coin op pooltafel herstellen met arduino
En waar doe je dan de digitalRead()? Die heb je nu allemaal als commentaar gezet. Dus lees je geen knoppen......
Re: Coin op pooltafel herstellen met arduino
stonden idd als comentaar had dit gedaan om te testen waar de fout lag omdat deze opstelling totaal niet werkt
zo was de code orgineel
zo was de code orgineel
- Code: Alles selecteren
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=7;
// The amount of steps for a full revolution of your motor.
// 360 / stepAngle
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
void setup() {
// Set the RPM of the motor
;
pinMode(led, OUTPUT);
pinMode(knop1, INPUT);
pinMode(knop2, INPUT);
pinMode(knop3,INPUT);
digitalWrite(knop2, LOW);
digitalWrite(led, LOW);
buttonState1 = LOW;
buttonState2 = LOW;
buttonState3 = LOW;
// Turn off the brakes
pinMode(brakeA, OUTPUT);
digitalWrite(dirA, 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 (knop1 == 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 (knop2 == HIGH) {
//
// Ja dus nu de stappenmotor activeren
digitalWrite (brakeA, LOW);
digitalWrite (dirA, HIGH);
analogWrite (pwmA, 255);}
buttonState3 =digitalRead(knop3);
if (knop3 == HIGH){
digitalWrite (brakeA, HIGH);
digitalWrite (dirA, LOW);
//
// en zet alles weer in de begin situatie
//
digitalWrite(led, LOW);
buttonState1 = LOW;
buttonState2 = LOW;
buttonState3 = LOW;
}
}
}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Coin op pooltafel herstellen met arduino
eerst ff in leesbaar formaat:
cpp code
cpp code
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 = 7;
// The amount of steps for a full revolution of your motor.
// 360 / stepAngle
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
void setup() {
// Set the RPM of the motor
;
pinMode(led, OUTPUT);
pinMode(knop1, INPUT);
pinMode(knop2, INPUT);
pinMode(knop3, INPUT);
digitalWrite(knop2, LOW);
digitalWrite(led, LOW);
buttonState1 = LOW;
buttonState2 = LOW;
buttonState3 = LOW;
// Turn off the brakes
pinMode(brakeA, OUTPUT);
digitalWrite(dirA, 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 (knop1 == 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 (knop2 == HIGH) {
//
// Ja dus nu de stappenmotor activeren
digitalWrite(brakeA, LOW);
digitalWrite(dirA, HIGH);
analogWrite(pwmA, 255);
}
buttonState3 = digitalRead(knop3);
if (knop3 == HIGH) {
digitalWrite(brakeA, HIGH);
digitalWrite(dirA, LOW);
//
// en zet alles weer in de begin situatie
//
digitalWrite(led, LOW);
buttonState1 = LOW;
buttonState2 = LOW;
buttonState3 = LOW;
}
}
}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Coin op pooltafel herstellen met arduino
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?
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?
33 berichten
• Pagina 2 van 4 • 1, 2, 3, 4
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 3 gasten