hulp bij het programmeren
15 berichten
• Pagina 1 van 2 • 1, 2
hulp bij het programmeren
Hoi iedereen die dit zou lezen, ben hier nieuw in en zeker in het programmeren. zou graag wat hulp hebben over een project dat ik zou willen starten. allereerst de gegevens geven wat ik zou willen doen. Wat ik gaar had willen doen met de arduino is, een teller aan sturen waarvan drie borden. elk bord zou dmv 3 knoppen elke knop staat voor een een cijfer. 1 ste knop 5 punten, de 2de 10p en de derde 15p. dus als ze op knop 1 drukken 5 pulsen of weet ik hoe. kan dit voor 3 stuks in een arduino gestoken worden of moet ik 3 aparte bordjes kopen voor elk scorebord? wie kan of wil me hier bij helpen? hopelijk wat goede hulp. merci alvast om dit te lezen.
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: hulp bij het programmeren
Joris
Het is mij nog niet helemaal duidelijk wat je wilt:
- je hebt het over borden. Wat voor borden?
- Wat is de bedoeling van die pulsen?
Als het beeld helder is kunnen we zien wat je aan hardware nodig hebt.
Het is mij nog niet helemaal duidelijk wat je wilt:
- je hebt het over borden. Wat voor borden?
- Wat is de bedoeling van die pulsen?
Als het beeld helder is kunnen we zien wat je aan hardware nodig hebt.
Re: hulp bij het programmeren
wat ik wil doen is heb een scorebord van 3 ploegen. deze wil aansturen dmv per ploeg 3 knoppen die dan de eerste knop 5p (5 pulsen)kan toedelen een 2 10p (10 pulsen) en de derde knop 15p (15 pulsen)
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: hulp bij het programmeren
Je geeft aan 5 pulsen, maar waarom pulsen, of is dat wat het score bord verwacht? als dat zo is dan begrijp ik dat je alleen die knoppen wil verwerken en pulsen afgeven (3 sets) naar het score bord?
Re: hulp bij het programmeren
ja puslen want de in van de teller vraagt 0/1 pulsen bij elke puls telt hij een maal op. Moest dit gaan zou ik voor elk scorebord 3 knoppen willen weet niet of dit in een bordje kan ik kan wel 9 ingangen gebruiken (voor de schakelaars) en 3 uitg maar weet echt ni hoe ik hier moet mee beginnen. ben hier namelijk een leek in. heb al wat boekjes gelezen maar zie niet hoe ik moet beginnnen :-s hopelijk kun jij me op weg helpen?
Re: hulp bij het programmeren
Probeer het 'probleem' zo goed mogelijk te omschrijven, meestal is dat de halve oplossing.
Je wil dus 3 pulsen, 0/1 overgangen als uitgang.
Is de ingang van de panelen 5V ? hoeveel stroom trekken ze ?
Je wil ze kunnen sturen door 3 schakelaars/drukknoppen. Dat deel is niet zo moeilijk omdat je dat helemaal zelf in de hand hebt. Het enige waar je op wil letten is anti-dender maar dat kan geen probleem zijn.
Volgens mij kan je dit perfect met 1 Arduino aan.
Kris
Je wil dus 3 pulsen, 0/1 overgangen als uitgang.
Is de ingang van de panelen 5V ? hoeveel stroom trekken ze ?
Je wil ze kunnen sturen door 3 schakelaars/drukknoppen. Dat deel is niet zo moeilijk omdat je dat helemaal zelf in de hand hebt. Het enige waar je op wil letten is anti-dender maar dat kan geen probleem zijn.
Volgens mij kan je dit perfect met 1 Arduino aan.
Kris
Als je het probleem gedetailleerd genoeg omschrijft, heb je meestal al de oplossing.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: hulp bij het programmeren
ik heb ff een versie voor je gemaakt. Probeer hem te begrijpen. De vragen moeten vanzelf wel komen
Getest en werkend
- Code: Alles selecteren
/**
* @file scorebord.ino
* @author Nico Verduin
* @date dd-mm-yyyy
* @version 1.0
* @mainPage
* Sketch description
*/
/**
* SVN version control. do not remove
* $Revision$
* $Date$
* $Author$
*/
//
// pulse definitions
//
#define PULSEONTIME 150 // 250 milliseconds ON time
#define PULSEOFFTIME 150 // 250 milliseconds OFF time
//
// pin definitions : 3 groups of 3 switches makes processing easier
//
#define SWITCH1_GROUP1 2 // Button 1 voor Groep 1
#define SWITCH2_GROUP1 3 // Button 2 voor Groep 1
#define SWITCH3_GROUP1 4 // Button 3 voor Groep 1
#define SWITCH1_GROUP2 5 // Button 4 voor Groep 2
#define SWITCH2_GROUP2 6 // Button 5 voor Groep 2
#define SWITCH3_GROUP2 7 // Button 6 voor Groep 2
#define SWITCH1_GROUP3 8 // Button 7 voor Groep 3
#define SWITCH2_GROUP3 9 // Button 8 voor Groep 3
#define SWITCH3_GROUP3 10 // Button 9 voor Groep 3
#define PULSE1 11 // Pulse score 1
#define PULSE2 12 // Pulse Score 2
#define PULSE3 13 // Pulse score 3
//
// global vaiables
//
//
// put the switches in an array, makes processing easier
//
unsigned int switchArray[3][3] = { { SWITCH1_GROUP1,SWITCH2_GROUP1, SWITCH3_GROUP1 },
{ SWITCH1_GROUP2,SWITCH2_GROUP2, SWITCH3_GROUP2 },
{ SWITCH1_GROUP3,SWITCH2_GROUP3, SWITCH3_GROUP3 } };
//
// put the pulse outputs in an array, makes processing easier
//
unsigned int pulseArray[3] = { PULSE1, PULSE2, PULSE3 };
//
// switch states
//
bool switchState[3]; // false = switch is released, true switch is set
/**
* @name readSwitches(unsigned int group)
* @param group determines which group needs to be tested
* @returns switchNumber index 0-2 or -1 if not pressed
* reads the switches of one group. if 2 buttons are pressed at the same time, the button pressed with the lowest
* index is taken. if no switch is pressed,
*/
int readSwitches(unsigned int group) {
int switchNumber = -1; // no switch pressed is default
//
// test if switch in group is pressed
//
for (unsigned int i = 0; i < 3; i++) {
//
// check each switch
//
if (digitalRead(switchArray[group][i]) == LOW) {
//
// check if we can process this switch
//
if (switchState[group] == false) {
//
// save switch number
//
switchNumber = i;
//
// set switch state
//
switchState[group] = true;
//
// and exit loop
//
}
break;
}
}
//
// check if a switch was pressed or allowed
//
if (switchNumber == -1) {
//
// check if all switches are released
//
unsigned int i;
for (i = 0; i < 3; i++) {
if (digitalRead(switchArray[group][i]) == LOW) {
//
// still a switch pressed so may as wel exit loop
//
break;
}
}
if (i == 3) {
//
// all switches are released otherwise i would never become 3
//
switchState[group] = false;
}
}
return switchNumber; // return value back to caller
}
/**
* @name processSwitches(unsigned int group, unsigned int button)
* @param group group currently in process
* @param button switch which was process
*/
void processSwitches(unsigned int group, unsigned int button) {
unsigned int pulseCnt; // number of pulses to generate
//
// determine the number of pulses needed based on button value.
// as the index = 0-2 so the below formula is the easyway
//
pulseCnt = (button * 5) + 5;
//
// send the pulses out to the score board
//
for (unsigned int i= 0; i < pulseCnt; i++) {
//
// pulse on
//
digitalWrite(pulseArray[group], HIGH);
//
// wait pulse time on
//
delay(PULSEONTIME);
//
// pulse off
//
digitalWrite(pulseArray[group], LOW);
//
// wait pulse off time
//
delay(PULSEOFFTIME);
}
}
/**
* @name setup()
* initializes the sketch once by power on or Reset
*/
void setup()
{
//
// set pin modes input
//
// 3 groups
//
for (unsigned int i = 0; i < 3; i++) {
//
// with each 3 inputs
//
for (unsigned int j = 0; j < 3; j++){
pinMode(switchArray[i][j], INPUT_PULLUP);
}
//
// and the corresponding output
//
pinMode(pulseArray[i], OUTPUT);
//
// reset switch states
//
switchState[i] = false;
}
}
/**
* @name loop()
* loop functions is called continuously
*/
void loop()
{
int button; // determines which switch is pushed
//
// process per group
//
for (unsigned int i = 0; i < 3; i++){
//
// get the switch value
//
button = readSwitches(i);
//
// if a switch was pushed, process it
//
if (button != -1) {
processSwitches(i, button);
}
}
}
Getest en werkend
Re: hulp bij het programmeren
hoi nico, heb het programma in mijn arduino gezet en aangesloten maar heb niets, moet ik zelf nog iets bij voegen of? heb de schakelaars aan de pinnen aangesloten en de outputs aan men tellers, maar doet niks
greetz
greetz
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: hulp bij het programmeren
Nou het ligt een beetje aan de tellers en de knoppen:
A) zijn de knoppen aan als deze aan GND schakelen? Of als ze naar de plus schakelen? Nu is het zo geprogrammeerd dat ze naar GND schakelen als ze aan zijn. Anders moet er een kleine programma wijziging gemaakt worden.
B) Ik weet niet wat de spanning is die nodig is om het score board te triggeren. 5v? 12V? 24V? .
Ik zou eerst die schakelaars ff goed zetten en dan ff op elke uitgang een ledje met weerstand 270 ohm in serie naar GND. Dan weet je of de knoppen werken en er pulsen uitkomen.
Daarna kan het zijn dat de pulsen te snel gaan. Ik heb 2 parameters in het begin gezet waarmee je de AAN en UIT tijd van een pulse kan veranderen. De waarde is in milliseconden.
Zorg je er ook voor dat de GNDs van de knoppen en de score board ook aan de GND van de Arduino worden verbonden? Anders gebeurt er nog steeds niets.
Maar ja je bent ook scheutig met info:)
A) zijn de knoppen aan als deze aan GND schakelen? Of als ze naar de plus schakelen? Nu is het zo geprogrammeerd dat ze naar GND schakelen als ze aan zijn. Anders moet er een kleine programma wijziging gemaakt worden.
B) Ik weet niet wat de spanning is die nodig is om het score board te triggeren. 5v? 12V? 24V? .
Ik zou eerst die schakelaars ff goed zetten en dan ff op elke uitgang een ledje met weerstand 270 ohm in serie naar GND. Dan weet je of de knoppen werken en er pulsen uitkomen.
Daarna kan het zijn dat de pulsen te snel gaan. Ik heb 2 parameters in het begin gezet waarmee je de AAN en UIT tijd van een pulse kan veranderen. De waarde is in milliseconden.
Zorg je er ook voor dat de GNDs van de knoppen en de score board ook aan de GND van de Arduino worden verbonden? Anders gebeurt er nog steeds niets.
Maar ja je bent ook scheutig met info:)
Re: hulp bij het programmeren
ja ik weet het ben nieuw in het forum dus nog nooit hulp gevraagd dus , nu de schakelaars zouden een plus moeten geven als ze gedrukt zijn dus. en de pulsen zouden een +5v moeten genereren. dus ga ik dat effe doen. me de schakelaars. ik laat het weten of het lukt
15 berichten
• Pagina 1 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: ajuzegaj, olovuse, teliquuucow en 18 gasten