bazzo54:
Hola
Bacchettato a dovere!! me la sono cercata.....
Pero' utili le risposte date, mi sono letto il sistema PWM e sinceramente l'inglese lo mastico molto poco, di conseguenza un capito una parte , che mettendo in alto o high (5 volt ) per un preciso tempo, con la frequenza di 500hz lo si puo' interpretare come una sequeza bianria da 0 a 255 in uscita! Ho capito giusto ?
Il segnale PWM altro non è che un'onda quadra (un'onda quadra è un'onda dove si alternano segnali a stato alto o high, ~5V, a segnali a stato basso o low, a ~0V). Di un'onda è bene sapere anche il suo duty cycle, ossia il rapporto fra il tempo che il segnale sta alto e quello in cui il segnale sta basso.
Ad esempio, se l'onda quadra esce così (1 per alto, 0 per basso):
1111000011110000.......
il suo duty cycle è al 50%.
Con l'Arduino puoi generare appunto un segnale PWM scegliendo solo il duty cycle (la frequenza è preimpostata).
Il segnale PWM è presente solo su alcuni pin, hai notato? Sono quelli marcati con "~". Essi sono agganciati direttamente ai 3 timer interni dell'Atmega328 dell'Arduino UNO. I registri di questi timer sono gestiti ad 8 bit dall'Arduino (anche se il timer 1 è a 16 bit), per cui il valore del duty cycle lo puoi scegliere fra 0 e 255.
Facendo un analogWrite(128) (128 è la metà di 256, che corrisponde a quanti valori differenti può assumere un byte), imposti il duty cycle al 50%.
Se invece fai un analogWrite(0) il duty cycle viene impostato a 0:
0000000000000000.....
Se fai un analogWrite(192) il duty cycle viene impostato al 75%:
1111110011111100....
Variando il tempo in cui il segnale è alto o basso un componente può reagire come se fosse pilotato con un segnale analogico. Ad esempio, se colleghi un led su un pin PWM e poi ne vari il duty cycle, vedrai che il led apparentemente varia la sua luminosità. In realtà, potendolo osservare al rallentatore, vedresti che il led si accende e spenge molto velocemente. Se il tempo in cui resta acceso è poco rispetto al tempo in cui resta spento, esso pare debolmente acceso, quindi sembra quasi alimentato da una tensione bassa. E viceversa.
per quanto riguarda l'utilizzo del 165 lo devo abinare al 164 o 595 che sono sfhit registrer in output per far funzionare una tastiera 4x4.
Se devi leggere una semplice tastiera 4x4 puoi anche usare direttamente 8 pin dell'Arduino. Usando un 165 abbinato ad un 595 impieghi comunque 6 pin, il risparmio è poco.
Per il pcf8574A ho gia' fatto delle prove sia co la tastiera 4x4 e con il LcdDisplay 20x4 e devo dire ottimo.
Allora usa questo, no 
Per le funzioni eeprom sinceramente go' capio poco... vedro' di applicarmi un po' di piu in merito, per il mio progettino sono indispensabili queste funzioni..
Lettura EEPROM: prendi un dato da una cella di memoria e lo salvi in una variabile.
Scrittura EEPROM: prendi un dato da una variabile o lo salvi in una cella di memoria.
In entrambi i casi hai bisogno dell'indirizzo di quella cella.
Se devi salvare più gruppi di byte, è ovvio che devi considerare quel gruppo come un blocco unico.
Pensa ai numeri civici ed agli interni:
23/A, 23/B e 23/C sono sempre contenuti nella palazzina al numero 23, anche se hanno una lettera differente.