Atiny con LCD_I2C

Buona giornata a tutti
sono un po di giorni che faccio prove con questo piccolo controllore,
sono riuscito ad accedere e spegnere un led,

ora però sto provando con un lcd_i2c a stampare un messaggio,
per far questo ho scaricato due librerie, LiquidCrystal_ATtiny e TinyWireM,

ma mi stampa solo la prima lettera e basta,
ho guardato gli esempi ma non ciò ho capito un H,

posto il programma che sto utilizzando

#include <TinyWireM.h>
#include <LiquidCrystal_attiny.h>

#define GPIO_ADDR 0x3F //3F
LiquidCrystal_I2C lcd(GPIO_ADDR, 16, 2);



void setup() {
  lcd.init();
  lcd.backlight();

  lcd.clear ();
}
void loop() {

  lcd.setCursor(0, 1);
  lcd.print("ciao");

  delay (100);
}

chiedo cortesemente se qualcuno mi può dare un aiuto per capire dove sbaglio

La LiquidCrystal, tanto tempo fa, aveva quel buco ... ... mentre nella versione classica il buco è stato corretto, ho idea che magari nessuno si è preoccupato di correggerlo nella versione per ATtiny (sicuro di stare ad utilizzare l'ultimo aggiornamento?)

Ricordo che bastava la semplice modifica di un RETURN ... se fai un po' di ricerche qui sul forum in Italiano dovresti trovare varie discussioni che parlano di detto buco e dovresti trovare come correggere la libreria che usi oppure .... provare a cercare una libreria più recente ed aggiornata per ATtiny :)

Guglielmo

... trovato :)

Apri il file LiquidCrystal_attiny.cpp, attorno alla linea 220 dovresti trovare questo:

inline size_t LiquidCrystal_I2C::write(uint8_t value) {
    send(value, Rs);
    return 0;
}

Devi modificare la return in modo che NON ritorni 0 ma 1 ovvero il tutto deve diventare:

inline size_t LiquidCrystal_I2C::write(uint8_t value) {
    send(value, Rs);
    return 1;
}

Prova a fammi sapere ;)

Guglielmo

Ciao Guglielmo grazie del aiuto, e proprio così pasto in return 0 ad return 1, va tutto bene, erano tre giorni che ci sbattevo la testa e cercavo in rete ma niente,

approfitto della tua disponibilità, o fatto delle prove per leggere un sensore DS18B20, caricando la libreria OneWire, ma si pianta nel setup, presumo che l'atiny non digerisca questa libreria o sbaglio?

poi ho dato uno sguardo al datasheet del atiny ho visto che i pin 2 e 3 sono anche chiamati ADC3 eADC2, questi possono essere anche pin analogici? mille grazie per il tempo che mi dedichi

milefori: o fatto delle prove per leggere un sensore DS18B20, caricando la libreria OneWire, ma si pianta nel setup, presumo che l'atiny non digerisca questa libreria o sbaglio?

Ho fatto una rapida ricerca su Google ed ho trovato sia QUESTO esempio che QUESTA libreria abbastanza recente ... ... provare non nuoce :)

Guglielmo

milefori:
poi ho dato uno sguardo al datasheet del atiny ho visto che i pin 2 e 3 sono anche chiamati ADC3 eADC2,
questi possono essere anche pin analogici?

Segui il .pdf allegato … e studia il datasheet … il ATtiny85 ha 4 canali analogici (ADC0 … ADC3).

Guglielmo

attinypdfv3_0.pdf (360 KB)

Ciao Guglielmo ancora mille grazie per i suggerimenti molto preziosi,

problema risolto, sbagliavo il pin di riferimento, mi e stato molto utile il pdf Attiny pinout

Antonio