ik denk dat 1 output verkeerd zit.
de diagonale 2 en de middelste 2 zitten gewisseld.
de eerste foto zou dan 5 zijn, de 2de een 4 en de 3de weer 5
0x04 en 0x08 hierboven dus in code, of 2 draden veranderen
code verschilt.
bij die laatste is led1 op pin 10 de centerled.
en bij de voorgaanse was dat led4 op pin 8
Ik heb dit in elkaar geflanst:
int pinLeds1 = 10;
int pinLeds2 = 9;
int pinLeds3 = 7;
int pinLed4 = 8;
int buttonPin = 6;
int buttonPin1 = 5;
int buttonState1;
int buttonState2;
long ran;
int time = 2000;
void setup ()
{
pinMode (pinLeds1, OUTPUT);
pinMode (pinLeds2, OUTPUT);
pinMode (pinLeds3, OUTPUT);
pinMode (pinLed4, OUTPUT);
pinMode (buttonPin, INPUT);
randomSeed(analogRead(0));
}
void loop()
{
buttonState1 = digitalRead(buttonPin);
if (buttonState1 == HIGH){
ran = random(1, 7);
if (ran == 1){
digitalWrite (pinLed4, HIGH);
delay (time);
}
if (ran == 2){
digitalWrite (pinLeds1, HIGH);
delay (time);
}
if (ran == 3){
digitalWrite (pinLeds3, HIGH);
digitalWrite (pinLed4, HIGH);
delay (time);
}
if (ran == 4){
digitalWrite (pinLeds1, HIGH);
digitalWrite (pinLeds3, HIGH);
delay (time);
}
if (ran == 5){
digitalWrite (pinLeds1, HIGH);
digitalWrite (pinLeds3, HIGH);
digitalWrite (pinLed4, HIGH);
delay (time);
}
if (buttonPin == HIGH && buttonPin1 == HIGH){
if (ran == 6){
digitalWrite (pinLeds1, HIGH);
digitalWrite (pinLeds2, HIGH);
digitalWrite (pinLeds3, HIGH);
delay (time);
}
}
}
digitalWrite (pinLeds1, LOW);
digitalWrite (pinLeds2, LOW);
digitalWrite (pinLeds3, LOW);
digitalWrite (pinLed4, LOW);
}
Als ik op knop1 drukt dn geeft het een willekeurige cijfer tussen de 1 en de 5.
Als ik op knop1 en knop2 drukt moet hij de 6 aangeven maar dat doet het niet.
Wat doe ik fout ?
[Bericht gewijzigd door fossie op (20%)]
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Hierbij een bijgewerkte sketch.
Niet getest, want ik heb het niet opgebouwd. Wel gecompileerd, geen compiler fouten.
int pinLeds1 = 10;
int pinLeds2 = 9;
int pinLeds3 = 7;
int pinLed4 = 8;
int pinButton1 = 6; // Roll
int pinButton2 = 5; // Cheat
int time = 2000; // 2 seconden
uint32_t Timer = millis();
uint8_t Knipper = 0;
void setup ()
{ pinMode (pinLeds1, OUTPUT);
pinMode (pinLeds2, OUTPUT);
pinMode (pinLeds3, OUTPUT);
pinMode (pinLed4, OUTPUT);
pinMode (pinButton1, INPUT);
pinMode (pinButton2, INPUT);
randomSeed(analogRead(0));
}
void loop()
{
int Getal = random(1, 6);
if (digitalRead(pinButton1) == LOW)
{ // pinButton1 is ingedrukt
// Alles uit
digitalWrite (pinLeds1, LOW);
digitalWrite (pinLeds2, LOW);
digitalWrite (pinLeds3, LOW);
digitalWrite (pinLed4, LOW);
if (digitalRead(pinButton2) == LOW)
{ // pinButton2 ook ingedrukt : 6
digitalWrite (pinLeds1, HIGH);
digitalWrite (pinLeds2, HIGH);
digitalWrite (pinLeds3, HIGH);
}
else
{ // pinButton2 niet ingedrukt
switch(Getal)
{ case 1 :
digitalWrite (pinLed4, HIGH);
break;
case 2:
digitalWrite (pinLeds1, HIGH);
break;
case 3:
digitalWrite (pinLeds3, HIGH);
digitalWrite (pinLed4, HIGH);
break;
case 4:
digitalWrite (pinLeds1, HIGH);
digitalWrite (pinLeds3, HIGH);
break;
case 5:
digitalWrite (pinLeds1, HIGH);
digitalWrite (pinLeds3, HIGH);
digitalWrite (pinLed4, HIGH);
break;
}
}
delay (time);
}
else
{ // pinButton1 niet ingedrukt
// Dan maar Knipperen
if((millis() - Timer) > 500)
{ Timer += 500;
Knipper += 1;
switch(Knipper)
{ case 1:
digitalWrite (pinLeds1, HIGH);
digitalWrite (pinLed4, HIGH);
break;
case 2:
digitalWrite (pinLeds1, LOW);
digitalWrite (pinLed4, LOW);
break;
case 3:
digitalWrite (pinLeds2, HIGH);
digitalWrite (pinLed4, HIGH);
break;
case 4:
digitalWrite (pinLeds2, LOW);
digitalWrite (pinLed4, LOW);
break;
case 5:
digitalWrite (pinLeds3, HIGH);
digitalWrite (pinLed4, HIGH);
break;
case 6:
digitalWrite (pinLeds3, LOW);
digitalWrite (pinLed4, LOW);
Knipper = 0;
break;
}
}
}
}
zo snel gekeken maak je de fout dat je bij de eerste niet kijkt of button 2 hoog was.
snelle aanpassing:
ik kijk nu als button 1 ingedrukt is EN de 2de niet, genereerd die gewoon 1-5 nummer.
als button 1 ingedrukt is EN button 2 ook, dan geeft die een 6. die if ran=6 mag weg
int pinLeds1 = 10;
int pinLeds2 = 9;
int pinLeds3 = 7;
int pinLed4 = 8;
int buttonPin = 6;
int buttonPin1 = 5;
int buttonState1;
int buttonState2;
long ran;
int time = 2000;
void setup ()
{
pinMode (pinLeds1, OUTPUT);
pinMode (pinLeds2, OUTPUT);
pinMode (pinLeds3, OUTPUT);
pinMode (pinLed4, OUTPUT);
pinMode (buttonPin, INPUT);
randomSeed(analogRead(0));
}
void loop()
{
buttonState1 = digitalRead(buttonPin);
if (buttonState1 == HIGH && buttonPin1 == LOW)){
ran = random(1, 6);
if (ran == 1){
digitalWrite (pinLed4, HIGH);
delay (time);
}
if (ran == 2){
digitalWrite (pinLeds1, HIGH);
delay (time);
}
if (ran == 3){
digitalWrite (pinLeds3, HIGH);
digitalWrite (pinLed4, HIGH);
delay (time);
}
if (ran == 4){
digitalWrite (pinLeds1, HIGH);
digitalWrite (pinLeds3, HIGH);
delay (time);
}
if (ran == 5){
digitalWrite (pinLeds1, HIGH);
digitalWrite (pinLeds3, HIGH);
digitalWrite (pinLed4, HIGH);
delay (time);
}
if (buttonPin == HIGH && buttonPin1 == HIGH){
digitalWrite (pinLeds1, HIGH);
digitalWrite (pinLeds2, HIGH);
digitalWrite (pinLeds3, HIGH);
delay (time);
}
}
}
digitalWrite (pinLeds1, LOW);
digitalWrite (pinLeds2, LOW);
digitalWrite (pinLeds3, LOW);
digitalWrite (pinLed4, LOW);
}
C:\Users\Foss\AppData\Local\Temp\.arduinoIDE-unsaved20231030-11576-2r4dsg.56xi2\sketch_nov30a\sketch_nov30a.ino: In function 'void loop()':
C:\Users\Foss\AppData\Local\Temp\.arduinoIDE-unsaved20231030-11576-2r4dsg.56xi2\sketch_nov30a\sketch_nov30a.ino:25:47: error: expected primary-expression before ')' token
if (buttonState1 == HIGH && buttonPin1 == LOW)){
^
C:\Users\Foss\AppData\Local\Temp\.arduinoIDE-unsaved20231030-11576-2r4dsg.56xi2\sketch_nov30a\sketch_nov30a.ino: At global scope:
C:\Users\Foss\AppData\Local\Temp\.arduinoIDE-unsaved20231030-11576-2r4dsg.56xi2\sketch_nov30a\sketch_nov30a.ino:61:14: error: expected constructor, destructor, or type conversion before '(' token
digitalWrite (pinLeds1, LOW);
^
C:\Users\Foss\AppData\Local\Temp\.arduinoIDE-unsaved20231030-11576-2r4dsg.56xi2\sketch_nov30a\sketch_nov30a.ino:62:14: error: expected constructor, destructor, or type conversion before '(' token
digitalWrite (pinLeds2, LOW);
^
C:\Users\Foss\AppData\Local\Temp\.arduinoIDE-unsaved20231030-11576-2r4dsg.56xi2\sketch_nov30a\sketch_nov30a.ino:63:14: error: expected constructor, destructor, or type conversion before '(' token
digitalWrite (pinLeds3, LOW);
^
C:\Users\Foss\AppData\Local\Temp\.arduinoIDE-unsaved20231030-11576-2r4dsg.56xi2\sketch_nov30a\sketch_nov30a.ino:64:14: error: expected constructor, destructor, or type conversion before '(' token
digitalWrite (pinLed4, LOW);
^
C:\Users\Foss\AppData\Local\Temp\.arduinoIDE-unsaved20231030-11576-2r4dsg.56xi2\sketch_nov30a\sketch_nov30a.ino:65:1: error: expected declaration before '}' token
}
^
exit status 1
Compilation error: expected primary-expression before ')' token
buttonpin1 wordt nergens ingelezen
void loop()
{
buttonState1 = digitalRead(buttonPin);
buttonState2 = digitalRead(buttonPin1);
if (buttonState1 == HIGH && buttonstate2 == LOW)){
ga je beneden ook moeten aanpassen dan
if (buttonPin == HIGH && buttonstate2 == HIGH){
[Bericht gewijzigd door fcapri op (16%)]
Betekent dat dat ik wat fout doet ?
Sorry voor mijn domme vragen heb er echt geen kaas van gegeten.
Lees er wel wat over.
Ben echt zo blij dat jullie er zoveel tijd en moeite insteken.
if (buttonState1 == HIGH && buttonstate2 == LOW)){
Daar staat een sluit-haakje te veel.
if (buttonState1 == HIGH && buttonstate2 == LOW)){
Heb het nu zo :
int pinLeds1 = 10;
int pinLeds2 = 9;
int pinLeds3 = 7;
int pinLed4 = 8;
int buttonPin = 6;
int buttonPin1 = 5;
int buttonState1;
int buttonState2;
long ran;
int time = 2000;
void setup ()
{
pinMode (pinLeds1, OUTPUT);
pinMode (pinLeds2, OUTPUT);
pinMode (pinLeds3, OUTPUT);
pinMode (pinLed4, OUTPUT);
pinMode (buttonPin, INPUT);
randomSeed(analogRead(0));
}
void loop()
{
buttonState1 = digitalRead(buttonPin);
buttonState2 = digitalRead(buttonPin1);
if (buttonState1 == HIGH && buttonState2 == LOW){
ran = random(1, 6);
if (ran == 1){
digitalWrite (pinLed4, HIGH);
delay (time);
}
if (ran == 2){
digitalWrite (pinLeds1, HIGH);
delay (time);
}
if (ran == 3){
digitalWrite (pinLeds3, HIGH);
digitalWrite (pinLed4, HIGH);
delay (time);
}
if (ran == 4){
digitalWrite (pinLeds1, HIGH);
digitalWrite (pinLeds3, HIGH);
delay (time);
}
if (ran == 5){
digitalWrite (pinLeds1, HIGH);
digitalWrite (pinLeds3, HIGH);
digitalWrite (pinLed4, HIGH);
delay (time);
}
if (buttonPin == HIGH && buttonState2 == HIGH){
digitalWrite (pinLeds1, HIGH);
digitalWrite (pinLeds2, HIGH);
digitalWrite (pinLeds3, HIGH);
delay (time);
}
}
}
digitalWrite (pinLeds1, LOW);
digitalWrite (pinLeds2, LOW);
digitalWrite (pinLeds3, LOW);
digitalWrite (pinLed4, LOW);
}
en krijg dit :
C:\Users\Foss\AppData\Local\Temp\.arduinoIDE-unsaved20231030-2844-bkh1cj.v0drv\sketch_nov30a\sketch_nov30a.ino:62:14: error: expected constructor, destructor, or type conversion before '(' token
digitalWrite (pinLeds1, LOW);
^
C:\Users\Foss\AppData\Local\Temp\.arduinoIDE-unsaved20231030-2844-bkh1cj.v0drv\sketch_nov30a\sketch_nov30a.ino:63:14: error: expected constructor, destructor, or type conversion before '(' token
digitalWrite (pinLeds2, LOW);
^
C:\Users\Foss\AppData\Local\Temp\.arduinoIDE-unsaved20231030-2844-bkh1cj.v0drv\sketch_nov30a\sketch_nov30a.ino:64:14: error: expected constructor, destructor, or type conversion before '(' token
digitalWrite (pinLeds3, LOW);
^
C:\Users\Foss\AppData\Local\Temp\.arduinoIDE-unsaved20231030-2844-bkh1cj.v0drv\sketch_nov30a\sketch_nov30a.ino:65:14: error: expected constructor, destructor, or type conversion before '(' token
digitalWrite (pinLed4, LOW);
^
C:\Users\Foss\AppData\Local\Temp\.arduinoIDE-unsaved20231030-2844-bkh1cj.v0drv\sketch_nov30a\sketch_nov30a.ino:66:1: error: expected declaration before '}' token
}
^
exit status 1
Compilation error: expected constructor, destructor, or type conversion before '(' token
denk dat er een accolade teveel staat vlak voor die laatste 4 regels tekst.
deze staan volgens mij buiten de loop nu
}
}}
digitalWrite (pinLeds1, LOW);
digitalWrite (pinLeds2, LOW);
digitalWrite (pinLeds3, LOW);
digitalWrite (pinLed4, LOW);
}
Yess dat was de fout.
Heb het nu geupload zonder errors.
Button 6 genereerd een getal tussen de 1 en de 5 zo te zien.
Alleen die andere button doet niets.
Lieve mensen bedankt allenmaal voor jullie tijd en moeite.
Mijn gewenste sketch is bijna klaar.
Hij doet nu bijna wat ik wil.
Hieronder het resultaat.
Het enigste wat hij nog niet doet is dat alle ledjes knipperen voordat er wordt gedrukt op de knoppen.
Mocht iemand daarvoor nog een idee hebben graag !!!
Ook is het de bedoeling deze code op een attiny chippie te zetten ... weet nog niet hoe en ook de schema heb ik nog niet.
int pinLeds1 = 10;
int pinLeds2 = 9;
int pinLeds3 = 7;
int pinLed4 = 8;
int buttonPin = 6;
int buttonPin2 = 5;
int buttonState1;
int buttonState2;
long ran;
int time = 2000;
void setup() {
pinMode(pinLeds1, OUTPUT);
pinMode(pinLeds2, OUTPUT);
pinMode(pinLeds3, OUTPUT);
pinMode(pinLed4, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(buttonPin2, INPUT);
randomSeed(analogRead(0));
}
void loop() {
buttonState1 = digitalRead(buttonPin);
buttonState2 = digitalRead(buttonPin2);
if (buttonState1 == HIGH && buttonState2 == HIGH) {
ran = 6; // Set the desired number to generate (in this case, 6)
if (ran == 6) {
digitalWrite(pinLeds1, HIGH);
digitalWrite(pinLeds2, HIGH);
digitalWrite(pinLeds3, HIGH);
delay(time);
}
} else {
buttonState1 = digitalRead(buttonPin);
if (buttonState1 == HIGH) {
ran = random(1, 6);
if (ran == 1) {
digitalWrite(pinLed4, HIGH);
delay(time);
}
if (ran == 2) {
digitalWrite(pinLeds1, HIGH);
delay(time);
}
if (ran == 3) {
digitalWrite(pinLeds3, HIGH);
digitalWrite(pinLed4, HIGH);
delay(time);
}
if (ran == 4) {
digitalWrite(pinLeds1, HIGH);
digitalWrite(pinLeds3, HIGH);
delay(time);
}
if (ran == 5) {
digitalWrite(pinLeds1, HIGH);
digitalWrite(pinLeds3, HIGH);
digitalWrite(pinLed4, HIGH);
delay(time);
}
}
}
digitalWrite(pinLeds1, LOW);
digitalWrite(pinLeds2, LOW);
digitalWrite(pinLeds3, LOW);
digitalWrite(pinLed4, LOW);
}
plak het donkere er eens tussen.
hier ga je na de ifloop, als je de knop NIET hebt ingedrukt, de leds even hoog zetten, 200ms wachten en dan weer de leds laag:
int pinLeds1 = 10;
int pinLeds2 = 9;
int pinLeds3 = 7;
int pinLed4 = 8;
int buttonPin = 6;
int buttonPin2 = 5;
int buttonState1;
int buttonState2;
long ran;
int time = 2000;
void setup() {
pinMode(pinLeds1, OUTPUT);
pinMode(pinLeds2, OUTPUT);
pinMode(pinLeds3, OUTPUT);
pinMode(pinLed4, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(buttonPin2, INPUT);
randomSeed(analogRead(0));
}
void loop() {
buttonState1 = digitalRead(buttonPin);
buttonState2 = digitalRead(buttonPin2);
if (buttonState1 == HIGH && buttonState2 == HIGH) {
ran = 6; // Set the desired number to generate (in this case, 6)
if (ran == 6) {
digitalWrite(pinLeds1, HIGH);
digitalWrite(pinLeds2, HIGH);
digitalWrite(pinLeds3, HIGH);
delay(time);
}
} else {
buttonState1 = digitalRead(buttonPin);
if (buttonState1 == HIGH) {
ran = random(1, 6);
if (ran == 1) {
digitalWrite(pinLed4, HIGH);
delay(time);
}
if (ran == 2) {
digitalWrite(pinLeds1, HIGH);
delay(time);
}
if (ran == 3) {
digitalWrite(pinLeds3, HIGH);
digitalWrite(pinLed4, HIGH);
delay(time);
}
if (ran == 4) {
digitalWrite(pinLeds1, HIGH);
digitalWrite(pinLeds3, HIGH);
delay(time);
}
if (ran == 5) {
digitalWrite(pinLeds1, HIGH);
digitalWrite(pinLeds3, HIGH);
digitalWrite(pinLed4, HIGH);
delay(time);
}
}
}
if (buttonState1 == LOW) {
digitalWrite(pinLeds1, HIGH);
digitalWrite(pinLeds2, HIGH);
digitalWrite(pinLeds3, HIGH);
digitalWrite(pinLed4, HIGH);
delay(200);
}
digitalWrite(pinLeds1, LOW);
digitalWrite(pinLeds2, LOW);
digitalWrite(pinLeds3, LOW);
digitalWrite(pinLed4, LOW);
}
Super hij laad alle ledjes branden als er niet wordt gedrukt.
Nu ff kijken waar het veranderd moet worden zodat het gaat knipperen.
[Bericht gewijzigd door fossie op (11%)]
aja, voeg onderaan nog eens toe delay(200) voor die laatste accolade.
hij zet de leds aan, wacht 200ms, zet ze uit en gaat ze direct weer aanzetten.
je zal dan wel 0,4sec vertraging krijgen op de knop
SUPERRRRRRRRRRRRRRRRRRRRRRRRRR BEDANKT !!!!!!!!!
Ik ben zooooo blij !!!!!!!!!!!!!!!!!!!!!!!!
Echt ik ben jullie zo dankbaar dat jullie mij hebben geholpen ... vooral fcapri en deKees.
Eingelijk iedereen .... ik kan jullie niet vertellen hoe blij ik ben !!!
Ik moet alleen ff uitzoeken hoe ik dit op een attiny kan zetten en hoe de schema eruit komt te zien.
[Bericht gewijzigd door fossie op (19%)]

