Leonardo master ADC i2C joystick switch

Leonardo master ADC i2C joystick switch segue l’articolo di Lunedì in cui hai letto come programmare un Attiny85 per leggere i suoi due ingressi analogici e l’ingresso digitale 1 e trasferire le informazioni in IIC

Attiny85 slave ADC i2C joystick switch schema

lo schema dei collegamenti lo trovi qui su e non è cambiato rispetto a quanto già realizzato per la parte slave della Leonardo master ADC i2C joystick switch.

Nota che sullo schema i collegamenti positivo e negativo sono stati portati dal basso all’alto della breadboard perchè l’attiny85 riceve alimentazione positiva dal pin 8 e negativa dal pin 4.

Lo schema deve tenere in considerazione la posizione dei pin SDA ed SCL sui pin D2 e D3 della scheda leonardo, in contrapposizione con l’arduino uno che presenta tali funzioni sui pin A4 ed A5:

SDA SCL arduino boards

Lo sketch Leonardo master ADC i2C joystick switch

Lo sketch che puoi utilizzare come test del Leonardo master ADC i2C joystick switch è simile a quello già analizzato in altri articoli dedicati all’attiny85 ed alla comunicazione I2C.

In questo esempio l’unica considerazione che devi osservare è il numero di byte da richiedere via IIC allo slave, attiny85: 

//Code for the Arduino Master
#include <Wire.h>

#define TARGET_ID 0x08

void setup() {
 Wire.begin(); // join i2c bus (address optional for master)
 Serial.begin(9600); // start serial for output
 Serial.println( "Setup Success" );
}
 
void loop() {
  Wire.requestFrom(TARGET_ID, 5);
 
  while(Wire.available() > 0) {
    byte adc2H = Wire.read();
    byte adc2L = Wire.read();
    byte adc3H = Wire.read();
    byte adc3L = Wire.read();
    byte swh1  = Wire.read();

    int adc2 = adc2H << 8 | adc2L;
    int adc3 = adc3H << 8 | adc3L;
    
    Serial.print( "ADC2: " );    Serial.print( adc2 );
    Serial.print( " - ADC3: " ); Serial.print( adc3 );
    Serial.print( " - SWH: " );  Serial.println( swh1 );
   }
 
delay(100);
}

iniziando dalla linea 04: dove definisci l’indirizzo in Hex ( esadecimale ) del tuo slave I2C Attiny85;

linea 13: definisci il numero di byte da richiedere all’attiny85, in questo esempio 5 byte è la lunghezza del messaggio che lo slave ti invierà;

linee 16-20: leggi i singoli valori ed assegnali a delle variabili, di tipo byte, che userai per ricostruire i dati provenienti dagli ADC e dal pulsante;

linee 25-27: invia sul monitor seriale i valori letti.

Il risultato usando il Joystick sarà:

Leonardo master ADC i2C joystick switch center

quando la Leonardo master ADC i2C joystick switch ha il joystick in posizione centrale e non premuto.

Se sposti il joystick in su vedrai:

Leonardo master ADC i2C joystick switch up

e spostando il joystick in giù otterrai:

Leonardo master ADC i2C joystick switch down

poi a destra:

Leonardo master ADC i2C joystick switch right

ed a sinistra

Leonardo master ADC i2C joystick switch left

infine premi il joystick in giù:

Leonardo master ADC i2C joystick switch switch

Ora sei in grado di acquisire i tuoi segnali analogici mediante attiny85 ed inviarli in IIC al tuo device.

  • Questo sito ed i suoi contenuti è fornito "così com'è" e Mauro Alfieri non rilascia alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo alla completezza, accuratezza, affidabilità, idoneità o disponibilità del sito o delle informazioni, prodotti, servizi o grafiche correlate contenute sul sito per qualsiasi scopo.
  • Ti chiedo di leggere e rispettare il regolamento del sito prima di utilizzarlo
  • Ti chiedo di leggere i Termini e Condizioni d'uso del sito prima di utilizzarlo
  • In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei qualora siano presenti link al suddetto sito.

Permalink link a questo articolo: https://www.mauroalfieri.it/elettronica/leonardo-master-adc-i2c-joystick-switch.html

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.