Pages: [1] 2   Go Down
Author Topic: Coda di output  (Read 1775 times)
0 Members and 1 Guest are viewing this topic.
Firenze
Offline Offline
Jr. Member
**
Karma: 1
Posts: 65
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buongiorno,

vi scrivo perche sono ad un passo dalla realizzazione del mio progetto (controllo tapparelle via web), ho realizzato l'interfaccia html e il codice di gestione delle chiamate ad arduino e dell'aggiornamento dei dati in pagina web. Mi son posto questo obiettivo: creare una coda di output. Ho 6 tapparelle da abbassare, ogni tapparella ci mette 30 secondi, ha un finecorsa interno che taglia la corrente quando arriva a fondo corsa. Io vorrei che, premendo il relativo pulsante in pagina grafica, venga inserita quella tapparella in una coda di output in modo che non devo aspettare 30 secondi per abbassarne un'altra, ma programmo la sequenza e arduino tiene 30 secondi un'uscita asserita e poi passa alla successiva. Per il pulse di 30 secondi ho trovato questo link che mi sembra faccia al caso mio:
http://playground.arduino.cc/Code/Timer

Dopo tutta la parte di interfaccia tra webserver e html arriva il momento della registrazione del comando dato da pagina web, lo gestisco cosi:

Code:
void writeIO(char outputType, int pin, int output)
{
  if (outputType == 'D'){
    (output-48 == 0) ? digitalWrite (pin-48, LOW) : digitalWrite (pin-48, HIGH);
  }
}
Questa funzione dovrà essere modificata, qui che dovro inserire il comando nella coda, e poi eseguire la coda nel setup().

Però non riesco a trovare una soluzione per creare la coda, che struttura e tipi di dati usare, e come fare per gestirla nel setup()...

Mi potete aiutare?
Logged

"Cosi non si va avanti..." disse il gambero

Genova
Offline Offline
Faraday Member
**
Karma: 17
Posts: 2745
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

perchè devi aspettare 30 secondi e chiuderne una alla volta?
Logged

Meglio imparare dalle cose inutili piuttosto che non imparare niente.   [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]

Firenze
Offline Offline
Jr. Member
**
Karma: 1
Posts: 65
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non vorrei che l'assorbimento dei rele superi la corrente max erogabile da arduino...
mod: 30 secondi è la durata dell'intera corsa di chiusura di una tapparella
« Last Edit: January 22, 2013, 04:16:42 am by amacbr » Logged

"Cosi non si va avanti..." disse il gambero

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

non vorrei che l'assorbimento dei rele superi la corrente max erogabile da arduino...
mod: 30 secondi è la durata dell'intera corsa di chiusura di una tapparella
Io alimenterei i relé non da Arduino ma da una alimentazione separata.
Logged


Firenze
Offline Offline
Jr. Member
**
Karma: 1
Posts: 65
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

la scheda Rele è alimentata a 12 volt, ma ha anche dei pin 5V. Ho gia aperto un post chiedendo se fosse sufficente alimentarla a 12V ma devo provarla, la scheda è questa
http://www.ebay.it/itm/16-canali-channel-5V-Rele-Relay-Board-Module-AVR-PIC-ARM-DSP-MCU-/170915329028#ht_2961wt_1397
e il post è questo
http://arduino.cc/forum/index.php?topic=142827.new;topicseen#new

Ancora non devo collegare arduino alla scheda, dici che potrebbe essere possibile eccitare 6 rele tutti insieme?
Logged

"Cosi non si va avanti..." disse il gambero

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

A bordo di quella scheda vedo un regolatore fatto con un LM2576. Vedendo il suo datasheet, leggo che può erogare fino a 3A. Siccome il produttore di quella scheda dice che i relé necessitano di 20 mA di corrente di pilotaggio, 16 relé tutti attivati contemporaneamente assorbirebbero 20*16=320 mA. Quindi ben dentro le capacità di quel regolatore (basta che tale assorbimento sia retto dall'alimentatore a 12V che stai usando).
Logged


Firenze
Offline Offline
Jr. Member
**
Karma: 1
Posts: 65
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

quindi mi confermi che non ho bisogno di collegare la 5V da arduino per pilotare la scheda?
Logged

"Cosi non si va avanti..." disse il gambero

Genova
Offline Offline
Faraday Member
**
Karma: 17
Posts: 2745
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non solo, mi sembra che abbia 8 optoisolatori e 2 Darlington Driver 8-Channel ULN2803, ma non li leggo quei chip, lo puoi confermare la sigla 2803 ?
Logged

Meglio imparare dalle cose inutili piuttosto che non imparare niente.   [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 2792
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quella scheda è strana. Ci sono 16 relè, 2 integrati driver 8 uscite (forse ULN) e 16 accoppiatori ottici.

Rimane da capire lo schema di collegamento interno.

Se le 2 porte di arduino pilotano i 16 accoppiatori ottici c'è da tenere in conto quanto corrente assorbono dalle porte di arduino. Se ogni led del accoppiatore ottico deve essere portato in conduzione con 20mA 20x16 = 320 mA che sono richiesti al microcontroller e sono tanti.

Questa scheda dovrebbe essere pilotabile da arduino con un impegno di corrente di pochi mA (1, 2mA) per tutti e 16 i relè altrimenti il vantaggio dov'è?

A me quella scheda non piace per nulla, mi sembra progettata da chi non sa nulla di elettronica, ma purtroppo non posso giudicare in mancanza di schema teorico.

Se dovessi fare una scheda simile userei direttamente gli integrati driver e senza accoppiatori ottici, che sono una inutile ridondanza, come pure l'alimentatore switching a 50Khz da 3 A mi sembra una ridondanza, come pure la tensione di 5V non mi sembra adatta comandare 16 rele. Allora relè da 24Vdc (o 12) che assorbono meno corrente, che mi permette di usare un regolatore più economico. I driver si comandano con una corrente richiesta ad un pin di arduino minore anche di 1mA per pin, ma anche se fosse 1mA si tratterebbe di assorbire 16 mA in totale corrente largamente gestibile da arduino.

Boh.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Firenze
Offline Offline
Jr. Member
**
Karma: 1
Posts: 65
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

purtroppo non ho la scheda sottomano per verificare la sigla dei chip!
Il punto è questo: se posso pilotare tutti i rele insieme evito di programmare la coda di output. Purtroppo la mia ignoranza in fatto di elettronica non mi permette di stabilire se posso farlo oppure no, e purtroppo ancora devo provare la scheda.
A breve proverò a pilotare un rele collegando il pin di un DO di arduino con un pin della scheda e il GND di arduino con il GND della scheda, alimentando la scheda a 12V.
Nel caso non funzionasse potrei provare a collegare anche il pin 5V di arduino con il pin 5V della scheda.
Una delle due configurazioni dovrebbe funzionare.
Ma questo non risponde alla domanda: posso pilotarli tutti insieme?
Logged

"Cosi non si va avanti..." disse il gambero

Genova
Offline Offline
Faraday Member
**
Karma: 17
Posts: 2745
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ce l'hai un tester?

collega i 6 comandi 5v tutti insieme "NON prelevare i 5v da arduino!, ma da un alimentatore 5v diverso" e misura con un amperometro quanta corrente totale prende per 6 relè, una volta che sei certo di quanto assorbimento hai su un pin ti fai i tuoi conti

ciao
Logged

Meglio imparare dalle cose inutili piuttosto che non imparare niente.   [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]

Firenze
Offline Offline
Jr. Member
**
Karma: 1
Posts: 65
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, a breve faro queste prove, spero che il mio alimentatore arrivi fino a 5V.
Vi faccio sapere.
Logged

"Cosi non si va avanti..." disse il gambero

Firenze
Offline Offline
Jr. Member
**
Karma: 1
Posts: 65
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ho trovato la documentazione della scheda, ve la posto mentre provo a capirci qualcosa.

* 16 relay 2.pdf (55.07 KB - downloaded 35 times.)
* 16 RELAY.pdf (491.42 KB - downloaded 32 times.)
Logged

"Cosi non si va avanti..." disse il gambero

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 2792
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora io non ho la scheda e non capisco cosa sono nella realtà i componenti contrassegnati con da PR1 a PR8.

I relè sono da 12V per questo è necessario fornire 12V alla scheda, da questa sorgente di 12V ne viene derivata una da 5V attraverso il LM2576, questa tensione si trova nel connettore Low Level Input a 20 pin.

La tensione di 5 volts è richiesta perchè gli accoppiatori ottici necessitano di una corrente di 15/20 mA ognuno per essere eccitati, la corrente serve per pilotare il led interno ad ogni accoppiatore ottico.

Per tanto per pilotarli insieme devi procurarti dei transistor o degli integrati ULN2803. Diversamente tutta la corrente di ogni accoppiatore (15/20 mA) graverà su ogni uscita di Arduino portando l'assorbimento complessivo oltre il consentito.

Tuttavia sapendo cosa sono quei componenti PR1, PR2 ecc, potrei dire meglio, in quanto potrebbe essere possibile comandare i relè "bypassando" gli accoppiatori ottici e collegandosi direttamente agli ULN2803 presenti nella scheda relè.

Io non ho detto niente, ma vedo sperimentatori sentirsi più sicuri usando relè connessi attraverso l'uso di accoppiatori ottici, i quali di per se sono in grado di comandare fisicamente un relè. Ma questa pratica non ha niente di sicuro in più e mette a anzi mette a rischio il microcontroller in caso di molti relè. In quella scheda gli accoppiatori sarebbero in grado di fornire la commutare la corrente necessaria alla eccitazione del relè, invece vengono connessi agli ingressi del ULN2803 che un driver.

Vedi di fare una foto della scheda che mostra i connettori PR1 to PR8, così ti so dire di più.
Dimmi anche quale è la scheda Arduino che intendi usare.

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Firenze
Offline Offline
Jr. Member
**
Karma: 1
Posts: 65
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

vi allego le foto della scheda

http://sdrv.ms/XyPhrR
http://sdrv.ms/V6gySi
Logged

"Cosi non si va avanti..." disse il gambero

Pages: [1] 2   Go Up
Jump to: