Ik loop weer vast
4 berichten
• Pagina 1 van 1
Ik loop weer vast
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
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
- Gij Kieken
- Berichten: 631
- Geregistreerd: 15 Nov 2015, 11:54
Re: Ik loop weer vast
Schrijf enkel naar het scherm als er een verandering is.
Of als test steek een delay(3000) in de loop.
Of als test steek een delay(3000) in de loop.
Re: Ik loop weer vast
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();
}
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();
}
Re: Ik loop weer vast
Bedankt " sorry voor de naam , gij kieken "
Het probleem is opgelost en het was zelfs eenvoudig.
bedankt voor uw reactie , Marco
Het probleem is opgelost en het was zelfs eenvoudig.
bedankt voor uw reactie , Marco
4 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 8 gasten