Ik loop weer vast

Arduino specifieke Software
Berichten: 9
Geregistreerd: 05 Jun 2018, 08:24
Woonplaats: Frankrijk

Ik loop weer vast

Berichtdoor f8voa » 16 Jul 2018, 16:14

Ik gebruik een TFT-scherm . Op dit scherm verschijnt 0 of 10 dBm al naargelang de stand van de schakelaar aangesloten op A5
Op A0 hangt een relais ( of een Ledje )

Staat de schakelaar op een LOW trekt het relais aan , op een HIGH laat het los , in zoverre alles OK

Op mijn scherm verschijnt dan " 0dBm of 10 dBm ".
Deze gegevens " knipperen " echter , ik krijg dus geen stilstaande tekst.Dit ziet er mooi uit maar is niet de bedoeling.

Iemand enig idee wat ik verkeerd doe ?

int dB_button = 1;


pinMode(A0, OUTPUT); // Bepaal A0 als schakelaar voor de 0dB-modus
digitalWrite(A0, LOW); // Maak A0 0-Volt

pinMode(A5,INPUT); // Drukschakelaar voor de 0dBm modus. Gaat naar GND bij het indrukken.
digitalWrite(A5,HIGH); // Zet de analoge pin A5 op 5V ( high )

Dit print naar het scherm:
void printsign_0dBm(){
tft.fillRect(40,80,100,20,ST7735_BLACK);
tft.setTextColor(ST7735_GREEN);
tft.setTextSize(2);
tft.setCursor(40,80);
tft.print( "0dBm");
}
void printsign_10dBm(){
tft.fillRect(40,80,100,20,ST7735_BLACK);
tft.setTextColor(ST7735_GREEN);
tft.setTextSize(2);
tft.setCursor(40,80);
tft.print( "+10dBm");
}
Dit staat in de loop :
dB_button = digitalRead(A5);
if (dB_button == LOW){digitalWrite(A0, HIGH);printsign_0dBm();}
if (dB_button == HIGH){digitalWrite(A0, LOW);printsign_10dBm();};

Met groeten , Marco

Advertisement

Gebruikers-avatar
Berichten: 255
Geregistreerd: 15 Nov 2015, 11:54

Re: Ik loop weer vast

Berichtdoor Gij Kieken » 16 Jul 2018, 16:47

Schrijf enkel naar het scherm als er een verandering is.
Of als test steek een delay(3000) in de loop.

Berichten: 9
Geregistreerd: 05 Jun 2018, 08:24
Woonplaats: Frankrijk

Re: Ik loop weer vast

Berichtdoor f8voa » 16 Jul 2018, 17:05

Mijn fout maar ik heb niet de hele sketch weergegeven . ( is te groot ) :( In de loop staan nog meer zoals doorlopend veranderingen van schakelaars en instellingen controleren , frequenties updaten enz . Hier een delay inbouwen kan ik dus niet .
Ik heb ook dit geprobeerd maar krijg ook hier de flikkering . Het is dus duidelijk dat ik aan de loop moet werken .......(?)

void printsign()
{ if (dB_button == LOW)
{digitalWrite(A0, HIGH);
tft.fillRect(40,80,100,20,ST7735_BLACK);
tft.setTextColor(ST7735_BLUE);
tft.setTextSize(2);
tft.setCursor(40,80);
tft.print( "0dBm");
}
if (dB_button == HIGH)
{digitalWrite(A0, LOW);
tft.fillRect(40,80,100,20,ST7735_BLACK);
tft.setTextColor(ST7735_RED);
tft.setTextSize(2);
tft.setCursor(40,80);
tft.print( "+10dBm");
}
}
void loop() {
dB_button = digitalRead(A5);{
if (rx != rx2) {
sendFrequency(rx);
rx2 = rx;
showFreq();
}

step_button = digitalRead(A4);
if( step_button == LOW) {
setincrement();
};
_
Hz_button = digitalRead(A1);
if( Hz_button == LOW) {
rx=freq_start;
};
KHz_button = digitalRead(A2);
if( KHz_button == LOW) {
rx=freq_start1;
};
MHz_button = digitalRead(A3);
if( MHz_button == LOW) {
rx=freq_start2;
};

if(memstatus == 0){
if(timepassed+2000 < millis()){
storeMEM();
}
}
}
printsign();
}

Berichten: 9
Geregistreerd: 05 Jun 2018, 08:24
Woonplaats: Frankrijk

Re: Ik loop weer vast

Berichtdoor f8voa » 17 Jul 2018, 07:44

Bedankt " sorry voor de naam , gij kieken "
Het probleem is opgelost en het was zelfs eenvoudig.
bedankt voor uw reactie , Marco :P

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 2 gasten