Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 22 agosto 12, 18:42   #1 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
un sistema elementare

ecco un sistema che lavora con i signoli pin elementare.. quando arduino non deve far altro che appunto leggere e inviare i dati a motori come traducendoli in PWM

RC Hobby Controllers and Arduino - SparkFun Electronics

a dopo
fausto
faustog_2 non è collegato   Rispondi citando
Vecchio 17 aprile 12, 20:24   #2 (permalink)  Top
User
 
L'avatar di Tom_1971
 
Data registr.: 23-04-2008
Residenza: Firenze
Messaggi: 1.108
Capito. Infatti ho visto che sullo stesso sito ce n'è un altro come altimetro...
Il limite è solo la fantasia (oddio, anche il tempo e il... portafoglio!)

Sent from my Xoom using Tapatalk 2
__________________
1) Honey Bee FP 2) Mini Titan (V1 e V2) 3) Paracopter 4) Ultra-Micro J-3 Cub 5) Blade msr 6) Ultra-Micro T-28 Trojan 7) Team Losi Mini T 8) Blade mcpx 9) Turnigy 1/16 Nitro Buggy 10) Basher Nictro Circus 1/10 SCT
Tom_1971 non è collegato   Rispondi citando
Vecchio 12 ottobre 12, 16:48   #3 (permalink)  Top
User
 
L'avatar di rasghi81
 
Data registr.: 02-01-2007
Residenza: Piacenza
Messaggi: 417
trasduttore e ingresso analogico

Ciao a tutti, ho da poco acquistato Arduino Uno e vorrei collegarci un trasduttore di pressione della danfoss mod MBS1075.
Questo trasduttore ha due contatti (+e-).
Ho provato a collegarlo alla scheda e avviare un programmino semplicissimo che legge l'ingresso analogico e lo usa come ritardo nell'accensione e spegnimento di un led.
Il passo successivo è quello di registrare la pressione nel tempo per farci un grafico.
Ovviamente non va.
Il problema è che io sono una capra in elettronica e sicuramente sbaglio a collegarlo.
Credo di doverlo alimentare a 9V (forse i 5V della usb non bastano) e questo non dovrebbe essere un problema, ma leggendo sulla guida di Arduino leggo che bisogna utilizzare anche una resistenza collegata in un qualche modo (che non so).
In pratica non so come fare!!!!!
Qualche buonanima riesce ad aiutarmi?
__________________
Ciao Luca
rasghi81 non è collegato   Rispondi citando
Vecchio 12 ottobre 12, 17:00   #4 (permalink)  Top
User
 
L'avatar di CarloRoma63
 
Data registr.: 08-08-2011
Residenza: Roma
Messaggi: 5.806
Citazione:
Originalmente inviato da rasghi81 Visualizza messaggio
Ciao a tutti, ho da poco acquistato Arduino Uno e vorrei collegarci un trasduttore di pressione della danfoss mod MBS1075.
Questo trasduttore ha due contatti (+e-).
Ho provato a collegarlo alla scheda e avviare un programmino semplicissimo che legge l'ingresso analogico e lo usa come ritardo nell'accensione e spegnimento di un led.
Il passo successivo è quello di registrare la pressione nel tempo per farci un grafico.
Ovviamente non va.
Il problema è che io sono una capra in elettronica e sicuramente sbaglio a collegarlo.
Credo di doverlo alimentare a 9V (forse i 5V della usb non bastano) e questo non dovrebbe essere un problema, ma leggendo sulla guida di Arduino leggo che bisogna utilizzare anche una resistenza collegata in un qualche modo (che non so).
In pratica non so come fare!!!!!
Qualche buonanima riesce ad aiutarmi?
Non conosco quel trasduttore, ma vado per analogia con alcuni microfoni a condensatore. Devi alimentare il positivo del sensore con una resistenza collegata al positivo dell'alimentazione, devi collegare il negativo al negativo dell'alimentazione e l'ingresso dell'Arduino va collegato al positivo del sensore. In pratica credo che il sensore si comporti come una resistenza variabile, quindi devi crearti un partitore resistivo per ottenere una tensione variabile in funzione della pressione. Per accertartene basta che misuri la resistenza senza applicare pressione e poi dopo aver applicato pressione o depressione. Se la mia ipotesi è corretta, per avere la massima sensibilità la resistenza con cui lo alimenti deve essere all'incirca uguale a quella offerta dal trasduttore in condizioni di riposo.

Carlo
__________________
Dai un pesce ad un uomo e lo avrai sfamato per un giorno, insegnagli a pescare e lo avrai sfamato per sempre. (Confucio)
I miei modelli: http://www.youtube.com/results?search_query=carloroma63
CarloRoma63 non è collegato   Rispondi citando
Vecchio 12 ottobre 12, 17:39   #5 (permalink)  Top
User
 
L'avatar di ElNonino
 
Data registr.: 06-05-2007
Residenza: Tre Ville (Preore)
Messaggi: 3.605
Invia un messaggio via MSN a ElNonino
Il sensore credo sia con uscita 4..20mA e richiede un alimentazione minima di 10V, per leggerla con l'ingresso di un micro (Arduino od altro il sistema è lo stesso) ma perdendo in risoluzione, è necessaria una sola resistenza da calcolare in base alla tensione di alimentazione del sensore ed alla tensione massima di ingresso ammessa dal convertitore A/D del micro.

Per esempio ammesso di alimentare il sensore con 10V (devono essere ben stabilizzati) ed avere un Vmax del micro di 3,3V i collegamenti da fare sono questi:
+ sensore connesso al +10V
- sensore collegato ad una resistenza da 165ohm e collegato al pin dello A/D del micro.
Altro capo della resistenza collegato al -10V ed al gnd del micro.

In questo modo però si perdono un po di bit di risoluzione poichè la corrente minima è di 4mA, alcuni micro permettono, usando un altro ingresso A/D di compensare questo offset,

Se mi dai i dati esatti del sensore vedo di buttare giù uno schemino.

__________________
Peace & Love
Fate le cose nel modo più semplice possibile, ma senza semplificare. (A. Einstein)
ElNonino non è collegato   Rispondi citando
Vecchio 13 ottobre 12, 20:21   #6 (permalink)  Top
User
 
L'avatar di rasghi81
 
Data registr.: 02-01-2007
Residenza: Piacenza
Messaggi: 417
Scusa per il ritardo, ma ho avuto problemi di connessione.
Ecco la scheda del prodotto, spero sia sufficente
Se riesci a buttare giu uno schemino te ne sarei infinitamente grato!!


Ciao
Files allegati
Tipo file: pdf ICPDP21Q102.pdf‎ (444,4 KB, 466 visite)
__________________
Ciao Luca
rasghi81 non è collegato   Rispondi citando
Vecchio 14 ottobre 12, 11:29   #7 (permalink)  Top
User
 
L'avatar di ElNonino
 
Data registr.: 06-05-2007
Residenza: Tre Ville (Preore)
Messaggi: 3.605
Invia un messaggio via MSN a ElNonino
Il sensore che utilizzi è un classico sensore industriale con uscita 4..20mA, è molto diffuso in ambito industriale.

Un uscita in corrente ha diversi vantaggi:
  • Con soli 2 fili si alimenta il sensore e si legge il segnale.
  • Non serve un alimentazione stabilizzata ma solo ben filtrata.
  • La resistenza elettrica del cavo di collegamento è praticamente ininfluente, sia per l'alimentazione che per il segnale.
  • Il far scorrere una corrente minima consente di rilevare facilmente interruzioni o cortocircuiti del cavo da parte del PLC o Microprocessore.
Per convertire il segnale in 4..20mA ti consiglierei di usare questo schema:



Alcune note:
  • La tensione di alimentazione del sensore deve essere almeno di 15V, 18..24V sarebbero ideali.Il - dell'alimentatore deve essere collegato al GND (-) di Arduino.
  • Il condensatore C1 deve essere ceramico e di ottima qualità, va montato il più vicino possibile al pin di ingresso del Arduino.
  • R2 e C1 formano un piccolo filtro per disturbi impulsivi e rumore captati dal cavo di collegamento, R2 e D1 servono a proteggere il convertitore A/D di Arduino in caso di fault del sensore, per la stessa funzione D2 è facoltativo ma consigliato.

Per quanto riguarda la conversione numerica dei dati tieni presente questo:

Arduino non permette la compensazione di offset del riferimento - del convertitore A/D quindi la tensione utile su R1 sarà compresa fra 1V e 5V (dando per scontato che Arduino sia alimentato a 5V
ed usi il riferimento interno di tensione)

La risoluzione in tensione sarà quindi 5V/1023 (10 bit) = 4,8876 mV per step.

Essendo la tensione minima di 1V equivalenti a 205 step dovrai sottrarre questo valore dal dato letto, quindi il tuo range di misura sarà di 1023-205 = 818 step.

Se il sensore di pressione ha un range fs di 10bar la risoluzione che otterrai sarà di circa 12,225 mbar, se fosse da fs6bar avresti 7,335mbar di risoluzione.

In pratica per leggere in bar dovrai applicare questa formuletta:
(Valore letto - 205) * 0,012225 oppure (Valore letto - 205) * 0,007335.

Spero di essere stato d'aiuto, non so la tua applicazione però valuta anche l'uso di un micro PLC come questo, completo e semplicissimo da usare (il sw di programmazione è gratuito se non chiedi e ti sarà dato): Millenium 3 logic controller Smart "Compact" range with display CD12 Smart - Crouzet

__________________
Peace & Love
Fate le cose nel modo più semplice possibile, ma senza semplificare. (A. Einstein)
ElNonino non è collegato   Rispondi citando
Vecchio 22 dicembre 12, 23:42   #8 (permalink)  Top
User
 
L'avatar di gRiNgO
 
Data registr.: 13-04-2009
Messaggi: 402
Grazie mille appena posso lo provo e scrivo il risultato.graziee!!!

Sent from my LG-P500 using Tapatalk
__________________
Parkzone T-28 // miniK 230 fpv racer // Axial Wraith // Truggy Hilux
// Axial SCX10 Rubicon
gRiNgO non è collegato   Rispondi citando
Vecchio 23 dicembre 12, 17:28   #9 (permalink)  Top
User
 
L'avatar di gRiNgO
 
Data registr.: 13-04-2009
Messaggi: 402
Romoloman ti devo un birra!!!
ho modificato leggermente il tuo sketch per adattarlo al sensore:
Codice:
#include <Wire.h>
char buffer[10];
float temp;
int tempPin=0;

void setup() {
  Wire.begin();
  
  }
void loop ()  {  
  temp = analogRead(tempPin);           //lettura valore del sensore
  temp = (5.0 * temp * 100.0)/1024.0;
  Wire.beginTransmission(0x63);
  Wire.write((byte)(0x13));
  Wire.write((byte)(0x13));
  Wire.write(4);
  Wire.write(12);
  Wire.write((byte)(0x01));
  
  Wire.write("Temperatura");
  dtostrf(temp,5, 1, buffer);
  Wire.write(buffer);
  
  delay(1000);
  
  Wire.write("Allarme off");
    delay(1000);
  
  Wire.endTransmission();
}

giusto per non essere asino che fa le cose senza capire cosa sono i dati tra parentesi del dtostrf?
grazie e buone feste
__________________
Parkzone T-28 // miniK 230 fpv racer // Axial Wraith // Truggy Hilux
// Axial SCX10 Rubicon

Ultima modifica di gRiNgO : 23 dicembre 12 alle ore 17:33
gRiNgO non è collegato   Rispondi citando
Vecchio 23 dicembre 12, 23:56   #10 (permalink)  Top
Adv Moderator
 
L'avatar di romoloman
 
Data registr.: 15-08-2007
Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
Citazione:
Originalmente inviato da gRiNgO Visualizza messaggio
Romoloman ti devo un birra!!!
ho modificato leggermente il tuo sketch per adattarlo al sensore:
Codice:
  dtostrf(temp,5, 1, buffer);

giusto per non essere asino che fa le cose senza capire cosa sono i dati tra parentesi del dtostrf?
grazie e buone feste
temp: (ovviamente la temperatura, il float letto dal sensore)
5: lunghezza minima del campo includo il punto e il decimale
1: numero dei decimali dopo la virgola
buffer: stringa temporanea per mettere il risultato

perchè ho scelto 5 ed 1 ?
dubito che il tuo range di temperatura possa eccedere i -99.9 ed essere superiore ai 999.9 gradi in tutti e due i casi come vedi la lunghezza massima è 5 caratteri
usando la lunghezza massima eviti che il numero si muova sul display al massimo ti trovi degli spazi prima.
1 perché il decimo di grado credo ti basti.

la domanda che potresti porti è perché con 5 come lunghezza minima hai allocato 10 byte nel buffer ?
In realtà in effetti può essere esagerato, bastavano 6 caratteri (ricordati che una stringa ha sempre in fondo il carattere '\0'.
per fare le cose formalmente corrette la cosa migliore sarebbe verificare con un if che temp sia nell'intervallo corretto e visualizzarlo solo in quel caso, prevenendo errori di lettura. Qualora infatti la dtostr dovesse ritornare un valore fuori range ci sarebbero due problemi... il primo di visualizzazione ed i secondo di buffer overflow.
__________________
Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo
Grazie "TRANQUILLO"
FAI 15766
romoloman non è collegato   Rispondi citando
Rispondi

Bookmarks



Strumenti discussione
Visualizzazione

Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
Coassiale mixed controller con arduino catman Circuiti Elettronici 12 02 aprile 11 00:17
quadricottero con arduino 2009 sailormann26 Aeromodellismo Progettazione e Costruzione 0 28 dicembre 10 00:12



Tutti gli orari sono GMT +2. Adesso sono le 20:39.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002