Buonasera a tutti.
Avendo un paio di sensori BME280, pressione temparatura e umidità e un display grafico volevo realizzare un visualizzatore di questi dati,avendolo già realizzato con un LCD 44780 16X4.
Ho realizzato le 3 finestre con le relative indicazioni, ma non riesco a scrivere le variabili.
non so scrivere un programma, mi arrangio provando e riprovando.
Ma stavolta la risposta dell'IDE è sempre la stessa.
'TEMP' was not declared in this scope
TEMP come PRES o HUM
Di seguito il codice, non fate caso alla strana manovra iniziale dove prelevo una variabile e gli aggiungo un centesimo.
/*
BME280 I2C Test.ino
This code shows how to record data from the BME280 environmental sensor
using I2C interface. This file is an example file, part of the Arduino
BME280 library.
GNU General Public License
Written: Dec 30 2015.
Last Updated: Oct 07 2017.
Connecting the BME280 Sensor:
Sensor -> Board
-----------------------------
Vin (Voltage In) -> 3.3V
Gnd (Ground) -> Gnd
SDA (Serial Data) -> A4 on Uno/Pro-Mini, 20 on Mega2560/Due, 2 Leonardo/Pro-Micro
SCK (Serial Clock) -> A5 on Uno/Pro-Mini, 21 on Mega2560/Due, 3 Leonardo/Pro-Micro
// convert floats into char u8g strings
u8g.drawStr( 5, 13, "Temp"); // do this for temperature
u8g.drawStr( 50, 13, TEMP); // Variabile non VA!!!
u8g.drawStr(105,13, "*C");
u8g.drawStr( 5, 35, "Press"); // do this for Pressure
u8g.drawStr( 50, 35, "20"); // Variabile non VA!!!
u8g.drawStr(110,35, "mB");
u8g.drawStr(8,56, "Hum"); // do this for humidity
u8g.drawStr( 50, 56, "30"); // Variabile non VA!!!
u8g.drawStr(115,56, "%");
}
Erano prove che facevo per vedere se la variabile effettivamente veniva scritta, difatti la leggevo in monitor seriale.
Il programma gira e il display visualizza i valori fissi che ho messo.
Ma se sostituisco il valore virgolettato torna il solito messaggio.
Idee? Proposte?
Grazie.
Anche il viaggio più lungo inizia con un piccolo passo.
Si vis pacem, para bellum!!!
Mark Zuckerberg ha reso suoi schiavi milioni di persone senza che se ne rendessero conto. F.G.
<Avete vinto voi,ma almeno non riuscirete a considerarmi vostro complice> Da Mediterraneo.
Inferno,Canto III,verso 51 Virgilio dice.........
Ok Grazie per il tempo dedicatomi e tolto alla finale di SAnremo.
La velocità a 74880 è data per MIA comodità .
Il WEMOS nasce a quella velocità e cosi vedo anche lo stato all'accensione.
Tutti i miei lavoretti vanno a 74880 bps.
Ho provato lo sketch, in effetti compila, ma non visualizza, il comando u8g print passa indenne la compilazione ma non può scrivere dove vorrei, anzi non lo trovo da nessuna parte sul display.
il comando dovrebbe essere u8g.drawStr( X,Y, var) dove X e Y sono i pixel dove voglio la scritta.
Grazie.
Anche il viaggio più lungo inizia con un piccolo passo.
Si vis pacem, para bellum!!!
Mark Zuckerberg ha reso suoi schiavi milioni di persone senza che se ne rendessero conto. F.G.
<Avete vinto voi,ma almeno non riuscirete a considerarmi vostro complice> Da Mediterraneo.
Inferno,Canto III,verso 51 Virgilio dice.........
Inoltre, le SUB io le metto sempre prima del Setup, altrimenti non le trova
Provo, tuttavia mi chiedevo la struttura va in questo modo?
Prima includo le librerie, nel Setup metto quello generale per tutto e nel Loop o sottoloop quello che deve eseguire.
O sbaglio?
Anche il viaggio più lungo inizia con un piccolo passo.
Si vis pacem, para bellum!!!
Mark Zuckerberg ha reso suoi schiavi milioni di persone senza che se ne rendessero conto. F.G.
<Avete vinto voi,ma almeno non riuscirete a considerarmi vostro complice> Da Mediterraneo.
Inferno,Canto III,verso 51 Virgilio dice.........
Ho spostato le variabili in testa, fuori dal loop, ho modificato il comando u8gprint in u8g.dreaStr e questo è la risposta di IDE.
u8g.drawStr(50, 13,temp); // Variabile non VA!!!
no matching function for call to 'U8GLIB_ST7920_128X64::drawStr(int, int, float&)'
Ovvero, drawStr vuole, valore X, valoreY, float, o variabile o che caspita vuole?
Sempre grazie.
Anche il viaggio più lungo inizia con un piccolo passo.
Si vis pacem, para bellum!!!
Mark Zuckerberg ha reso suoi schiavi milioni di persone senza che se ne rendessero conto. F.G.
<Avete vinto voi,ma almeno non riuscirete a considerarmi vostro complice> Da Mediterraneo.
Inferno,Canto III,verso 51 Virgilio dice.........
nautiluso
postato il: 12.02.2023, alle ore 09:50
Nel reference a cui facevo riferimento avevo trovato
print
C++/Arduino Prototype:
void U8G2::print(...)
Description: This is the Arduino print() function. See the description on the Arduino Web Page here and here. This procedure will write the text to the current cursor position with the current font, set by setFont. The cursor position can be set by setCursor. Support for UTF-8 can be enabled with enableUTF8Print. This function can print variable values and supports the F() macro.
Arguments: See link.
Returns: -
Note 1: This function depends on the current font mode and drawing color.
Note 2: Use print(u8x8_u8toa(value, digits)) or print(u8x8_u16toa(value, digits)) to print numbers with constant width (numbers are prefixed with 0 if required).
See also: print (U8x8), enableUTF8Print, setCursor, setFont
Example:
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(0, 15);
u8g2.print('Hello World!');
che appunto indica che può stampare variabili a patto che sia enableUTF8Print
Purtroppo non avendo un display non posso fare prove.
Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito