Forse mi son perso qualcosa!!!!

Hola a tutti

( Mi spiego e non son Diego!!!! ) Torniamo in se'. la mie domande sono tre la prima:

Gli ingressi analogici fanno anche da uscite analogiche ? questa domanda me la son posta quando ho usato il pcf8574A che usavo le porte A4 e A5 con I2-c ..... !!!!

sto cercado di far funzionare il 74hc165 con una tastiera 4x4 , pero' speravo di trovare qualche esempio in giro che lo utilizza, l'ho trovato ma, gli Sketch che trovo sono tutti delle versioni 022, di conseguenza gia di mio faccio fatica èerche' non termina la compilazione attraverso i messaggi di errore che da' e poi ci si mettono anche le versioni vecchie! Ce' qualcuno che mi puo' passare qualche esempio provato che funzioni ?

La terza e questa, se io dovessi memorizzare dei dati attraverso una tastiera e da utilizzare con il programma senza perderli durante una mancanza di tensione, quale comandi e dove collocarli nel Atmel?

Grazie a tutti 8)

bazzo54:
Hola a tutti

( Mi spiego e non son Diego!!!! ) Torniamo in se'. la mie domande sono tre la prima:

Gli ingressi analogici fanno anche da uscite analogiche ? questa domanda me la son posta quando ho usato il pcf8574A che usavo le porte A4 e A5 con I2-c ..... !!!!

No.
Se parliamo di Arduino UNO, MEGA o Leonardo, questi chip non hanno uscite analogiche nel vero senso della parola, ma simulano un'uscita analogica ricorrendo al PWM.
Il chip dell'Arduino DUE ha invece la possibilità di generare un vero segnale analogico.

sto cercado di far funzionare il 74hc165 con una tastiera 4x4 , pero' speravo di trovare qualche esempio in giro che lo utilizza, l'ho trovato ma, gli Sketch che trovo sono tutti delle versioni 022, di conseguenza gia di mio faccio fatica èerche' non termina la compilazione attraverso i messaggi di errore che da' e poi ci si mettono anche le versioni vecchie! Ce' qualcuno che mi puo' passare qualche esempio provato che funzioni ?

Per usare l'165 basta adoperare la funzione shiftIn, non servono programmi strani.
http://arduino.cc/en/Reference/ShiftIn

La terza e questa, se io dovessi memorizzare dei dati attraverso una tastiera e da utilizzare con il programma senza perderli durante una mancanza di tensione, quale comandi e dove collocarli nel Atmel?

Grazie a tutti 8)

Puoi usare l'EEPROM interna.
http://arduino.cc/en/Reference/EEPROM

PS:
dovresti studiarti bene il Reference:

lì ci sono tutti i comandi di Arduino e le librerie integrate.
Dovresti anche studiarti l'hardware in tuo possesso:

Tutte le domande avrebbero trovato risposta già nella lettura di quelle pagine :wink:

Gli ingressi analogici fanno anche da uscite analogiche ?

Per il microcontroller di Arduino UNO/2009 ecc la risposta è no, sono solo ingressi che fanno capo ad un convertitore A/D.

Per arduino DUE, non lo conosco, devi cercare info nel datasheet del microcontroller il quale è scaricabile gratuitamente dal sito di Atmel.

La terza e questa, se io dovessi memorizzare dei dati attraverso una tastiera e da utilizzare con il programma senza perderli durante una mancanza di tensione, quale comandi e dove collocarli nel Atmel?

Tra gli esempi di arduino forniti con l'ambiente di programmazione c'è come scrivere in memoria EEprom interna, ma nel playgrond c'è anche come collegare una memoria EEprom esterna, che dialoga con il micro attraverso protocollo hardware i2c o SPI.
Nel playground si trovano varianti per scrivere nella EEprom interna che a seconda delle necessità vanno scelte, io ho trovato comodo in passato la gestione della EEprom attraverso l'uso di una struttura presente in memoria che alla richiesta del programma viene salvata o caricata in/da memoria EEprom.

Vedi un po tu, pasticcia un po con gli esempi, posta il codice su cui hai dubbi che sicuramente troverai risposte precise a domande precise.

Leo72 mi ha anticipato.

Ciao.

bazzo54:
...
Gli ingressi analogici fanno anche da uscite analogiche ? questa domanda me la son posta quando ho usato il pcf8574A che usavo le porte A4 e A5 con I2-c ..... !!!!

No gli ingressi analogici fanno anche da entrate e uscite digitali (con numeri da 14 a 19 sul Arduino UNO)
I pin A4 e A5 hanno anche la funzione del interfaccia I2C implementata in hardware nel microcontrollore.

bazzo54:
sto cercado di far funzionare il 74hc165 con una tastiera 4x4 , pero' speravo di trovare qualche esempio in giro che lo utilizza, l'ho trovato ma, gli Sketch che trovo sono tutti delle versioni 022, di conseguenza gia di mio faccio fatica èerche' non termina la compilazione attraverso i messaggi di errore che da' e poi ci si mettono anche le versioni vecchie! Ce' qualcuno che mi puo' passare qualche esempio provato che funzioni ?

Con solo un 74hc165 non riesci a leggere una matrice di tasti 4x4 perché Ti servono 4 uscite e 4 entrate. Questo lo puó fare il pcf8574A oppure devi usare un 74hc165 e un 74hc164 (o 74HC595).

Ciao Uwe

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 ?

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.

Per il pcf8574A ho gia' fatto delle prove sia co la tastiera 4x4 e con il LcdDisplay 20x4 e devo dire ottimo.

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..

Ciao e grazie a tutti per le risposte date..... 8)

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 :wink:

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.

Hola Leo72

Per il PwM avevo abbastanza capito che il variare del duty cicle determina il rapporto alto basso, pero' non avevo notato quel".." di alternata che non lo trovo sulla tastiera e non sapevo il suo significato che pero' li trovo sul lato I/O e non sul lato analogic IN, sara' mia curiosita' collegare l'oscilloscpio per vere cio'!!!

Per il pcf8574A e l'unica soluzione per poter risparmiare gli I/O disponibili !!!

Per la lettura/scrittura della EEPROM gia' sapevo il discorso delle celle e che dovro' andare a vedere i comandi per fare cio' e in quale zona andra a depositarli o dove dovro' depositarli per non incasinare il tutto!!!!

Ciao e grazie 8)