so, this is my first Arduino project. I'm using a lcd, potentiometer, HC08, a simple buzzer and a button.
the goal is that people can select there name and press the button, while I get their name on my phone using the app BLE TOOLS.
Everything Is working just fine except the fact that at the end of the code, only the first "if" scenario works. On occasion an other name will fall trough but speaking only the first works(with the name Quinn). I already played with: "if", "if else" and "while".
I hope you all can see the problem trough my English. The code does have dutch words en names in it so please do ask if there is something unexplained.
the problem starts at: if (waardeS1 == HIGH && POTNAAMWaarde == Quinn)
#include <SoftwareSerial.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const byte rxPin = 9;
const byte txPin = 8;
SoftwareSerial mySerial(rxPin, txPin); // RX is poort 10 - TX is poort 11
LiquidCrystal_I2C lcd(0x27, 20, 4); // adres van lcd = 0x27 en heeft op 4 regels elk 20 karakters
#define POTNAAM A3 // pin a3 van de arduino noemen we POTNAAM
#define POTKLAS A4 // pin a4 vann de arduino noemen we POTKLAS
int POTNAAMWaarde = 0; // De waarde van POTNAAMWaarde begint op 0
int S1 = 2; // pin 2 van de arduino noemen we S1
int BUZ = 13; // pin 13 van de arduino noemen we BUZ, klinkt signaal bij opstarten
int waardeS1 = LOW; // de waarde van S1 begint op 0
void setup() {
pinMode (rxPin, INPUT);
pinMode (txPin, OUTPUT);
pinMode (POTNAAM, INPUT); // POTNAAM is gemarkeerd als input
pinMode (POTKLAS, INPUT); // POTKLAS is gemarkeerd als input
pinMode (S1, INPUT); // S1 is gamarkeerd als input
pinMode (BUZ, OUTPUT); // BUZ is gemarkeerd als output
Serial.begin (9600); // stel de snelheid van de serial in op 9600
mySerial.begin(9600); // zet snelheid gelijkl met de rest van het systeem
//while(!Serial);
mySerial.println ("Aanwezig:");
lcd.init(); // activeer lcd
lcd.backlight(); // activeer backlight van lcd
lcd.setCursor(0, 0); // zet de cursor op positie 0 regel 1
lcd.print("Klas: JN3.ROBO"); // print op deze regel deze tekst
lcd.setCursor(0, 1); // zet de cursor op positie 0 regel 2
lcd.print("Selecteer naam: "); // print op deze regel deze tekst
lcd.setCursor(0, 3); // zet de cursor op positie 0 regel 4
lcd.print("huiswerk: "); // print op deze regel deze tekst
}
//String messageBuffer = "";
//String message = "";
//char dataByte;
void loop() {
POTNAAMWaarde = analogRead(POTNAAM); //POTNAAMWaarde = analoge waarde van POTNAAM
waardeS1 = digitalRead(S1); // waardeS1 = binaire waarde van S1
//Serial.println (waardeS1); // wijzig in code om de ingang te controleren in de monitor
if (mySerial.available())
Serial.write(mySerial.read());
//dataByte = mySerial.read();
//Serial.write (dataByte);
if (Serial.available())
mySerial.write(Serial.read());
//dataByte = Serial.read();
//mySerial.write(dataByte);
int Quinn = map(POTNAAMWaarde, 0, 1023, 1, 50); // in de volgende regels krijgt elke naam een beriek van de potmeter toegewezen
int Maike = map(POTNAAMWaarde, 0, 1023, 51, 100);
int Dylan = map(POTNAAMWaarde, 0, 1023, 101, 150);
int Stijn = map(POTNAAMWaarde, 0, 1023, 151, 200);
int Yuri = map(POTNAAMWaarde, 0, 1023, 201, 250);
int Miko = map(POTNAAMWaarde, 0, 1023, 251, 300);
int Aron = map(POTNAAMWaarde, 0, 1023, 301, 350);
int Vince = map(POTNAAMWaarde, 0, 1023, 351, 400);
int Rick = map(POTNAAMWaarde, 0, 1023, 401, 450);
int terug = map(POTNAAMWaarde, 0, 1023, 451, 500); // het bereik dat overblijft krijgt later een pijl naar links toegewezen
lcd.setCursor(6, 2); // zet de cursor op karakter 6 op regel 3
if (POTNAAMWaarde == Quinn) { // wanneer de potmeter het bereik van Quinn heeft dan,
lcd.print ("Quinn ");} // schrijf Quinn op de plek van de cursor
if (POTNAAMWaarde == Maike) { // de overige namen volgen hier.
lcd.print ("Maike ");}
if (POTNAAMWaarde == Dylan) {
lcd.print ("Dylan ");}
if (POTNAAMWaarde == Stijn) {
lcd.print ("Stijn ");}
if (POTNAAMWaarde == Yuri) {
lcd.print ("Yuri ");}
if (POTNAAMWaarde == Miko) {
lcd.print ("Miko ");}
if (POTNAAMWaarde == Aron) {
lcd.print ("Aron ");}
if (POTNAAMWaarde == Vince) {
lcd.print ("Vince ");}
if (POTNAAMWaarde == Rick) {
lcd.print ("Rick ");}
if (POTNAAMWaarde == terug) { // wanneer de potmeter het bereik van Quinn heeft dan,
lcd.print ("<-- ");} // pint een pijltje zodat de gebruiker weet om terug te gaan
if (waardeS1 == HIGH){ // wanneer de schakelaar ingedrukt wordt dan,
//mySerial.println("Quinn");
digitalWrite(BUZ, HIGH); // zet uitgang BUZ op aan
delay(50); // wacht 0,05 sec
digitalWrite(BUZ, LOW); // zet uitgang BUZ op uit
delay(100); // wacht 0,05 sec
digitalWrite(BUZ, HIGH); // zet uitgang BUZ op aan
delay(50); // wacht 0,05 sec
digitalWrite(BUZ, LOW); } // zet uitgang BUZ op uit
// delay(1500); } // wacht 1,5 sec om te voorkomen dat er lang ingedrukt wordt
if (waardeS1 == HIGH && POTNAAMWaarde == Quinn)
{ mySerial.write ("Quinn");
}
if (waardeS1 == HIGH && POTNAAMWaarde == Maike)
{ mySerial.write ("Maike"); }
if (waardeS1 == HIGH && POTNAAMWaarde == Dylan)
{ mySerial.write ("Dylan"); }
if (waardeS1 == HIGH && POTNAAMWaarde == Stijn)
{ mySerial.write ("Stijn"); }
if (waardeS1 == HIGH && POTNAAMWaarde == Yuri)
{ mySerial.write ("Yuri"); }
if (waardeS1 == HIGH && POTNAAMWaarde == Miko)
{ mySerial.write ("Miko"); }
if (waardeS1 == HIGH && POTNAAMWaarde == Aron)
{ mySerial.write ("Aron"); }
if (waardeS1 == HIGH && POTNAAMWaarde == Vince)
{ mySerial.write ("Vince"); }
if (waardeS1 == HIGH && POTNAAMWaarde == Rick)
{ mySerial.write ("Rick"); }
}