Go Down

Topic: l'atmel display recuperato dal decoder (Read 7 times) previous topic - next topic

astrobeed


allora appena collegato il tutto come da foto, caricato su arduino i2c_scanner e dal monitor seriale mi dice "I2C divice found at address 0x38 ! done". quindi l'indirizzo del display è "0x38".


Il fatto che I2Cscanner ha trovato l'address ti conferma che si tratta di un device I2C, adesso devi solo provare ad inviargli dati scrivendo sulla I2C utilizzando quell'address.
Io come prima prova gli manderei due byte contenenti i valori 0x01 0x02, se il display funziona come penso dovrebbe visualizzare "0102".

Michele Menniti

lui vorrebbe la sintassi per l'invio, credo.... :D
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

vitoos


lui vorrebbe la sintassi per l'invio, credo.... :D

anche se sarebbe bello avere una sintassi provo a guardare nel playground per vedere se trovo qualcosa

vitoos

Quote
#include <Wire.h>

byte val = 0;

void setup()
{
   Wire.begin(); // join i2c bus
}

void loop()
{
   Wire.beginTransmission(56); // transmit to device #44 (0x2c)
                               // device address is specified in datasheet
   Wire.write(val);             // sends value byte 
   Wire.endTransmission();     // stop transmitting

  val++;        // increment value
   if(val == 64) // if reached 64th position (max)
   {
     val = 0;    // start over from lowest value
   }
   delay(5);
}


allora ho preso questo sketch dalla playground e guardando una tabella ascii presa su internet ho capito che per comunicare con il display dovevo mettere "56" per avere l'indirizzo "0x38" del display. ora il display si accende ed emette valori a casaccio che cambiano in continuazione. il pin reset è staccato. vi posto un'altra foto

astrobeed

In base a quello che appare direi che è molto probabile che vengono controllati i singoli segmenti di ogni cifra in funzione dei bit del valore che invii, ovvero un byte è composto da 8 bit e 7 di questi corrispondono ai segmenti del display, se c'è anche il punto è legato all'ottavo bit.
Se invii una serie di valori dove metti a 1 solo un bit per volta per ogni byte in un attimo hai la codifica, usa il formato binario "0b00000000" mettendo a 1 solo un bit per volta.
Devi inviare 4 byte per volta, uno per ogni cifra del display, e non singoli byte per ogni invio.

Go Up