Coin op pooltafel herstellen met arduino

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

Coin op pooltafel herstellen met arduino

Berichtdoor FL3x » 19 Apr 2014, 15:18

Mijn eerste project is even aan de kant gelegd voor een nieuw projectje .


Ik heb namelijk een pooltafel op de kop kunnen tikken :D maar hier is de coin op van stuk.

De bedoeling is dat als er een munt (rondel) ingestoken word dat er dan een led gaat branden in de bestaande knop en deze dan pas de stepper kan activeren.

Onderaan de coin op zit een knop die dus pas na activatie de 2de knop activeert waardoor dan de stepper word geactiveerd



Nu wou ik deze met een arduino, arduino motor shield, en een stepper motor terug aan het werk krijgen.

Wat ik tot nu toe al aan het werk heb is dat als ik e knop induw dat de stepper zijn omwenteling
maakt en de poolballen vrijkomen.

Maar kom er maar niet achter hoe ik de eerste 2 stappen moet toevoegen vooraleer de stepper mag werken.

Is dit alles eigenlijk mogelijk met een arduino ?

Heb al een gedeelte van de code geschreven aan de hand van op internet gevonden voorbeelden, zal deze later even erbij posten.

Advertisement

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

Re: Coin op pooltafel herstellen met arduino

Berichtdoor FL3x » 19 Apr 2014, 16:19

hier de code die ik tot nu toe heb

Code: Alles selecteren
// Include the Stepper Library
#include <Stepper.h>

// Map our pins to constants to make things easier to keep track of
const int pwmA = 3;
const int pwmB = 11;
const int brakeA = 9;
const int brakeB = 8;
const int dirA = 12;
const int dirB = 13;
const int switchPin = 2;
const int led =4;

// The amount of steps for a full revolution of your motor.
// 360 / stepAngle
const int STEPS = 200;

// Initialize the Stepper class
Stepper myStepper(STEPS, dirA, dirB);

void setup() {
// Set the RPM of the motor
myStepper.setSpeed(10);
pinMode(led, OUTPUT);

// Turn on pulse width modulation
pinMode(pwmA, OUTPUT);
digitalWrite(pwmA, HIGH);
pinMode(pwmB, OUTPUT);
digitalWrite(pwmB, HIGH);

// Turn off the brakes
pinMode(brakeA, OUTPUT);
digitalWrite(brakeA, LOW);
pinMode(brakeB, OUTPUT);
digitalWrite(brakeB, LOW);

}

void loop() {
// Move the motor X amount of steps
if (digitalRead(switchPin) == HIGH)
{myStepper.step(0);}


else {myStepper.step(200);}


zover ben ik dus al nu enkel nog de eerste knop en led toevoegen.
iemand een idee ?

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

Re: Coin op pooltafel herstellen met arduino

Berichtdoor nicoverduin » 19 Apr 2014, 16:26

Waar je ff voor op moet passen is de spanning die eventueel op de schakelaar staat. Deze mag max 5V zijn. Daarnaast is het nog onduidelijk of je nu een pull-down (schakelaar schakelt naar GND) of pullup (Schakelaar schakelt naar 5V) gebruikt.
In feite hoef je niet meer te doen dan eerst ontdekken of er een munt in is gegooid. Pas daarna laat je de LED branden en pas daarna test je de knop.
Heb je geen schema van dat ding?
En jaar het past gemakkelijk op de Arduin (zelfs op een attiny...
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 » 19 Apr 2014, 16:54

pull down

zo steekt het op moment op mijn breadboard

Afbeelding

filmpje 2 knoppen en led maar led werkt niet en 2knoppen geven zelfde resultaat
Afbeelding

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

Re: Coin op pooltafel herstellen met arduino

Berichtdoor nicoverduin » 19 Apr 2014, 17:32

Nou met de schakeling is nogal het een en ander mis:
- Als je de knop indrukt, maak je sluiting met de + en min en zal de Arduino resetten. Je moet vanuit elke schakelaar naar de (-) een weerstand nemen van iets van 4.7K tot 10K. De andere kant van die weerstand gaat naar de schakelaar. De data pinnen worden op dit zelfde punt verbonden. Als je de schakelaar niet hebt ingedrukt, dan wordt de data pin door de weerstand naar GND getrokken (LOW). Druk je de schakelaar in dan wordt de data pin naar (HIGH) getrokken.
- Tussen de datapin en de LED moet een weerstand. Eea afhaneklijk van de stroom die LED trekt en de spanning waamee hij werkt. De datapin van de Arduino is bijna 5V en de meeste LEDS trekken iets van 20mA bij 2.2V. Een weerstandje van iets van 330 ohm is een mooi begin punt om tussen de LED en de data pin te zetten. Als de LED niet brand, dan heb je hem mogelijk verkeerd om in het breadboardje zetten. de korte draad moet naar de GND.
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 » 20 Apr 2014, 10:39

ondertussen weerstandjes geplaatst

edit : led juist geplaatst :oops:

Afbeelding[/URL]

en de code een beetje aangepast

Code: Alles selecteren
// Include the Stepper Library
#include <Stepper.h>

// Map our pins to constants to make things easier to keep track of
const int pwmA = 3;
const int pwmB = 11;
const int brakeA = 9;
const int brakeB = 8;
const int dirA = 12;
const int dirB = 13;
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
const int STEPS = 200;
int buttonState1 = 0;
int buttonState2 = 0;

// Initialize the Stepper class
Stepper myStepper(STEPS, dirA, dirB);

void setup() {
// Set the RPM of the motor
myStepper.setSpeed(10);
pinMode(led, OUTPUT);
pinMode(knop1, INPUT);
pinMode(knop2, INPUT);
digitalWrite(knop2, LOW);

// Turn on pulse width modulation
pinMode(pwmA, OUTPUT);
digitalWrite(pwmA, HIGH);
pinMode(pwmB, OUTPUT);
digitalWrite(pwmB, HIGH);

// Turn off the brakes
pinMode(brakeA, OUTPUT);
digitalWrite(brakeA, LOW);
pinMode(brakeB, OUTPUT);
digitalWrite(brakeB, LOW);

}

void loop() {
buttonState1 = digitalRead(knop1);
buttonState2 = digitalRead(knop2);

  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState1 == HIGH) {   
    // turn LED on:   
    digitalWrite(led, HIGH);}
  digitalWrite(led, LOW);
   
    if (buttonState2 == LOW){
      {myStepper.step(0);}}


else {myStepper.step(200);
digitalWrite(led,LOW);
   

}}


het begint er op te lijken
Laatst gewijzigd door FL3x op 20 Apr 2014, 11:03, in totaal 1 keer gewijzigd.

Gebruikers-avatar
Berichten: 700
Geregistreerd: 05 Mrt 2012, 21:56
Woonplaats: Appingedam

Re: Coin op pooltafel herstellen met arduino

Berichtdoor pjh » 20 Apr 2014, 10:49

Ik houd van details. En in je schema staat de LED verkeerd om. Voor de goede orde:
Afbeelding

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

Re: Coin op pooltafel herstellen met arduino

Berichtdoor FL3x » 20 Apr 2014, 11:04

Foto is aangepast :D
nu enkel nog knop2 (die de stepper laat draaien) pas laten werken als knop1 eerst is ingedrukt geweest

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

Re: Coin op pooltafel herstellen met arduino

Berichtdoor nicoverduin » 20 Apr 2014, 11:50

Wat je moet doen is een variabele creëren die de setting van de eerste button bewaard. Dus eerst een test of knop 1 is ingedrukt. Ledje aan en klaar.
Volgende test is of button1 setting "aan is". Zo ja motor laten draaien en alles weer uitzetten.
tutti
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 » 20 Apr 2014, 12:11

nicoverduin schreef:Wat je moet doen is een variabele creëren die de setting van de eerste button bewaard. Dus eerst een test of knop 1 is ingedrukt. Ledje aan en klaar.
Volgende test is of button1 setting "aan is". Zo ja motor laten draaien en alles weer uitzetten.
tutti


misschien een voorbeeld code ?
kan als leek even niet meer volgen :oops:

Volgende

Terug naar Arduino hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 8 gasten