Ciao,
ho provato a estendere le porte con un PCF8574A
va tutto , variando i valori di " define PCF1_write 0B00000000 "
riesco a mettere a 1 le uscite che voglio....
il mio problema
non riesco a modificare la variabile PCF1_write dopo il void loop()
con PCF1_write 0B11111111
Grazie
/22_05_2016********************************************************
*Vedere come definire la scrittura della variabile PCF_write
*
SCOPO: prova uscite PCF8574A
PCF8574A usato come I/0 expander I2C output
Arduino analog input 5 -> I2C SCL
Arduino analog input 4 -> I2C SDA
I2C bus slave address "decimal=56 bin=111000 / A0-A1-A2 ->0"
Buonasera,
essendo il tuo primo post, ti chiedo cortesemente di presentartiQUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il REGOLAMENTO ...
... poi, in conformità al suddetto regolamento, punto 7, devi editare il tuo post (in basso a destra del post, bottone More -> Modify) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).
In merito alla tua questione ...
... tu NON hai dichiarato una variabile di nome PCF1_write, ma una #define !!!
Per avere una variabile devi eliminare quella #define e aggiungere una
byte PCF1_write = 0B00000000; //variabile di comando PCF8574A
così, in qualsiasi momento, puoi riassegnargli il valore.
Detto questo ...
... perdona :), ma uno, prima di buttarsi a scrivere programmi, almeno le basi del linguaggio che deve usare bisogna che se le studia ... perché qui stiamo parlando delle BASI ...
Prenditi un bel testo di C e comincia a studiare, poi ti riavvicinerai, sicuramente più produttivo, al tuo programma.
Puoi cominciare con QUESTO e puoi scaricarti QUESTO libro (... tranquillo, è un sito legale, purché per esclusivo uso PERSONALE).
Ho comprato un libro Apogeo Corso completo di programmazione tersa edizione,
ma come puoi capire da ora ho ripreso in mano una cosa di 2 anni Fà... sono arrugginito....
Speravo in un aiuto per levarmi un dubbio in breve tempo.....
Ciò che mi hai detto lo avevo provato anche io ma da errore nella compilazione...puoi specificarmi per favore dove scriverlo?
allego il codice che non riesco a compilare:
sketch_may22a.ino:18:17: error: expected initializer before numeric constant
sketch_may22a.ino: In function ‘void loop()’:
sketch_may22a.ino:32:12: error: ‘PCF1_write’ was not declared in this scope
/***22_05_2016***********************************************************
*Vedere come definire la scrittura della variabile PCF_write
*
* SCOPO: prova uscite PCF8574A
*
* PCF8574A usato come I/0 expander I2C output
*
* Arduino analog input 5 -> I2C SCL
* Arduino analog input 4 -> I2C SDA
*
* I2C bus slave address "decimal=56 bin=111000 / A0-A1-A2 ->0"
*
******************************************************************/
#include <Wire.h>
#define PCF1_address B0111000 //indirizzo slave address PCF8574A A2 = A1 = A0 = 0
byte PCF1_write 0B00000000; //variabile di comando PCF8574A
void setup()
{
Wire.begin();
}
void loop()
{
//Come si varia il valore della variabile PCF1_write?
{
Wire.beginTransmission(PCF1_address);
Wire.write(PCF1_write);
Wire.endTransmission();
delay(500);
}
}