Settare PWM in input è possibile?

E' possibile mettere il pin PWM in input?

E, in tal caso, è possibile modulare l'intensità, ad esempio, prima dare dal pin 3 +8mA e poi -8mA collegandolo magari al pin 9 PWM che, quando il pin 3 è positivo, questo è negativo, mentre quando il pin 3 è negativo questo è positivo?

Anche se si potesse fare che senso avrebbe?PWM è come Analog In ma al "contrario", cioè Analog Out. Se mi spieghi che devi fare forse posso aiutarti! ;)

non ho capito bene cosa vuoi fare... vuoi leggere un segnale PWM dall'arduino?

se vuoi leggere un segnale analogico, ci sono gli input analogici. se vuoi leggere la composizione di onda pi un PWM (che è un finto segnale analogico simulato accendendo e spenganendo velocemente e per tempi ben precisi un segnale digitale), allora arduino dovrà essere in grado di leggere un segnale digitale più velocemente della sua durata minima; molto, forse troppo complesso. meglio leggre l'ingresso analogico e stimare il PWM a spanne :)

beh se è ttl compatibile e sufficiente usare la funzione pulseIn e trovi la durata del segnale a livello alto, o basso a scelta, e di conseguenza conoscendo la frequenza del segnale ti trovi il duty cycle, io faccio così di solito... non so se ci sono modi migliori, sono interessato anch'io a questo topic perchè sono curioso di conoscere altre soluzioni usate ;)

valido se e solo se la frequenza del PWM è molto inferiore (1/4 almeno direi) alla frequenza di clock del micro, e il micro non deve fare altro.

Quindi si può mettere in input un pin PWM, se sto capendo bene da quello che avete detto, giusto?

Mi serviva principalmente per due motivi:

1) Per sapere se, invece di usare un pin solo positivo e un'altro solo negativo, si può comunicare in input e in output da uno stesso pin con un altro integrato.

2) Per non far passare tensione tra l'anodo e il catodo di un diodo SCR dopo che l'ho eccitato col Gate, applicando a quest'ultimo la stessa corrente ma di polo opposto.

I pin di Arduino non tollerano tensioni negative né possono generarle. Un PWM non è il nome di un pin ma di un segnale emesso da un pin.

Un pin segnato con la serigrafia "PWM" può essere messo in input ma restituisce solo valori HIGH o LOW, intendendo per HIGH segnali prossimi a 5V e per LOW segnali prossimi a 0V.

dauwak: Quindi si può mettere in input un pin PWM, se sto capendo bene da quello che avete detto, giusto?

Mi serviva principalmente per due motivi:

1) Per sapere se, invece di usare un pin solo positivo e un'altro solo negativo, si può comunicare in input e in output da uno stesso pin con un altro integrato.

2) Per non far passare tensione tra l'anodo e il catodo di un diodo SCR dopo che l'ho eccitato col Gate, applicando a quest'ultimo la stessa corrente ma di polo opposto.

1) sí si puó settare un Pin come uscita o entrata a secondo la necessitá stando attento di non settarlo uscita quando quello del integrato dove é attacato é anch esso uscita. 2) perché devi lavorare con i SCR? non puoi usare dei transistor?

Ricordati che Arduino regge tensioni sulle entarata da 0 a 5V quando é alimentato a 5V.

Ciao Uwe

Ho capito quindi non è possibile settare i Pin PWM anche come GND.

Sto imparando un po' di elettronica con Arduino provando a usare tutti i componenti per capirli, ho provato già i transistor, ora gli SCR, ora poi proverò i triac e gli integrati...

Grazie delle risposte! Ciao

dauwak: Ho capito quindi non è possibile settare i Pin PWM anche come GND.

Quello che non capisci è che i pin di Arduino non sono sorgenti di alimentazione, in uscita ottieni degli stati logici pari a poco più di 0V per lo zero e poco meno della tensione di alimentazione per l'uno, anche se è possibile prelevare qualche mA dai pin di Arduino questo non significa che li puoi usare per alimentare un qualcosa che non sia un piccolo carico come un led o similari. Tutti i pin di Arduino sono bidirezionali, cioè li puoi settare come ingressi o uscite a tuo piacere, alcuni pin hanno funzionalità multiple come la possibilità di diventare ingressi per l'ADC, uscite per i generatori PWM, appartenere ad una certa tipologia di bus come l'I2C o la SPI, le possibilità sono molte e tutti i dettagli li trovi sul data sheet dell'ATmega 328, non semplice da capire per chi è a digiuno di elettronica digitale, e sulle varie guide/tutorial di Arduino, decisamente più semplici da comprendere però raramente entrano nel dettaglio come fa il data sheet.

dauwak: Ho capito quindi non è possibile settare i Pin PWM anche come GND. Sto imparando un po' di elettronica con Arduino provando a usare tutti i componenti per capirli, ho provato già i transistor, ora gli SCR, ora poi proverò i triac e gli integrati...

Il tuo approccio di avvicinarti all'elettronica é sbagliato. Non puoi prendere un transistore fare 3 prove e dire che l' hai capito. Dimentica gli SCR e i Triac; sono componenti che si usano di rado e quando avrai bisogno sará il momento giusto di studiarli. Gli SCR da anni non si usano piú per comutare carichi alti in corrente continua ma sono stati sostituiti da transistori e MOSFET di potenza che sono usciti con le caratteristiche adatte per questi impegni. Nessuno usa piú un SCR e deve spegnerli. Prendi un libro su Arduino e segui gli esempi. poi ti fai venire un idea di cosa Ti piacerebbe costruire e lavori in quella direzione cercando di capire che componenti Ti servono e come farli funzionare. In quello Ti aiuteremo.

Ciao Uwe

Ah ok, allora prendo un libro di Arduino e seguo gli esempi, o magari realizzo i principali esempi del learning e del playground…

Grazie mille, solo se devo costruire qualcosa, possibilmente di mio, vi chiedo

PS: quale libro su Arduino mi consigliate nell’eventualità?

se sai bene l' inglese puoi usare questo tutorial: http://arduino.cc/en/Tutorial/HomePage Su youtube trovi lezioni in italiano di Massimo Banzi: http://www.youtube.com/watch?v=3JUhq_r_J-k&feature=results_main&playnext=1&list=PLB6A60E693EFB1ED3 Ciao Uwe

Ho iniziato a sapere che esiste Arduino da un corso gratuirto che puoi trovare sul sito della Rivista ElettronicaIn:

http://www.elettronicain.it/myMain/corsi/p_corsi.asp

C'è anche questo corso in Italiano, molto semplice e ben spiegato:

http://www.maffucci.it/area-studenti/arduino/

Uwe chiedo a te o a Leo, ma naturalmente estendo a tutti per la risposta, e mi intrometto nella discussione poichè proprio in questi giorni ho avuto bisogno di costruirmi un regolatore PWM con NE555. Tutto perfetto, se nonchè quando regolo il potenziometro per variare il segnale ho dovuto temporaneamente aggiungere un led in uscita, perchè cosi visivamente riesco ad avere un'idea sommaria della posizione ottimale (guardando la frequenza di lampeggio). Ovviamente è una cosa empirica, ma se questo segnale lo mandassi su Arduino cosi da poterlo poi leggere su un display ? (intanto faccio allenamento con Arduino :) ) Sono un poco arruginito con l'elettronica, e perciò prima di fare disastri vorrei sapere se posso buttare direttamente il segnale dentro un Pin Analogico di Arduino, e quanti volt questo sopporti, perchè presumo che con la massima regolazione dovrei avere in uscita del circuito PWM 12 volt. Praticamente alimento 20Cm di filo per il taglio a caldo del polistirolo. Paolo

Qualunque pin di Arduino regge 5V.

Il PWM non Ti da una tensione variabile ma Ti varia il rapporto di acceso e spento mantenend costante la frequenza. Percui misurerai sempre o 0 o 12V. per misurare la grandezza di un segnale PWM devi misurare il tempo di accensione con pulseIn(). Per misurare delle tensioni maggiori di 5V devi mettere un partitore resistivo che porta i 12 V a 5V (megio un po meno: 4,5V) e conetterli ad un entrata digitale. Collegare anche le 2 masse. Un diodo Zener da 4,7V in paralello all'entrata la protegge. Questo vale se l'ATmega sul Arduino é alimentato a 5V. (per l' esatezza le entrate reggono ca 0,5V sopra la tensione di alimentazione; il pin di reset regge 12V e serve per fare la programmazione alta tensione nel caso che il ATmega sia bloccato da settaggi sbagliati dei fuse che non permettono piú la sua programmazuione con ISP).

Non puoi mettere una scala sul potenziometro di regolaione del 555?

Ciao Uwe

Secondo me (se la frequenza di PWM è fissa) hai bisogno di un periodimetro che ti segni il rapporto Ton/Toff.

In pratica devi sviluppare uno Sketch che ti legga il periodo in cui l'onda quadra PWM resta a 1 e quello in cui resta a 0.

In linea di principio si tratta di "aprire" un pin in lettura finchè non cè un cambiamento di stato (puoi ad usare un Interrupt provando quale delle 4 fasi di una quadra: LOW, CHANGE, RISING, FALLIG, funziona meglio per lo scopo.

Leggi i millisecondi di quanto tempo sta su 1, quanti sta a 0 e fai una funzione matematica che ti fa il rapporto in percentuale, che poi passi al solito Serial.print() con cui potrai pilotare un Display LCD.

@Uwe

Non puoi mettere una scala sul potenziometro di regolaione del 555?

Intendi una semplice stampa su carta ? :) Beh direi che non sarebbe male, tanto non mi serve la precisione. Devo solo cambiare il trimmer che ho messo invece del potenziometro perchè al momento non lo avevo disponibile :) Grazie a tutti per i consigli su come poter usare il PWM in ingresso. bye