Consigli Progetto contagiri con barra a LED

Ciao a tutti! La settimana scorsa ho iniziato a pensare a come realizzare un contagiri per la mia moto con barra a LED. Ho già pensato dove prendere l'impulso elettrico ( dal cavo che dalla centralina va alla bobina), ora però sono bloccato a come far captare il segnale da Arduino. Premetto che ho già cercato sia sul foro che su google ma ho trovato solo progetti che secondo me complicano la faccenda più di quanto non sia in realtà. Dato che la frequenza con la quale l'impulso che arriva alla bobina corrisponde a 4 giri del motore(motore 4t) ho pensato che se fossi riuscito a far leggere questa variazione di frequenza avrei potuto programmare la scheda per far accendere e spegne in sequenza i LED. L'impulso è di tipo analogico( I/0) per cui potrei usare come input un pin analogico, il mio problema è come impostare la frequenza dell'impulso come variabile e soprattutto sapere se tutto ciò è possibile. Grazie a tutti per l'aiuto!

Ciao, temo che il vero problema sia il fatto che gli impulsi che vuoi leggere siano moooolto meno puliti di quanto tu non creda.
Per il momento ti consiglio di cercare sul FORUM il progetto VESPADUINO che integra anche un contagiri, magari puoi iniziare a prendere spunto da lì.

Eppure sono impulsi dati da una centralina elettronica, cmq potresti postarmi il link che non la trovo? grazie mille!

Sopratutto capirai poi che il tuo motore non va su di giri perché a un motore a 4 tempi hai un tempo di combustione e percui la scintilla ogni 2 giri del motore (non 4).
Non so come é il segnale della centrallina ma mi preocupere di condizionalo per assicurare che diventa piú pulito e sia un bel impulso da 5V.
Poi non fai niente con un entrata analogica perché l'ampiezza del segnale non dice niente.
Usa la funzione pulseIn() per determinare il tempo tra un impulso e l' altro.

Ciao Uwe

Eccolo

:grin:

il filo che mensioni....se è come penso, è persorso da 400V minimo! non ti conviene attaccare l'arduino li!

fai una cosa, collega un pezzetto di filo ad un'ingresso digitale, posizionalo vicino al filo della candela, non troppo, direi un 10cm bastano, leggine lo stato! vedrai che sentirà il campo magnetico generato dalla scintilla della candela! eccoti il segnale che cerchi!

io l'ho fatto, funziona, non è neanche male come segnale!

la maggior parte dei contagiri di Kart va con questo principio!

:wink:

Z3us, ma poi l'hai completato il tuo progetto o no? Non mi pare che tu l'abbia condiviso alla fine (ma è assolutamente un tuo diritto), diversamente ci sarebbe proprio da spostare il Topic in MegaTopic, ma ovviamente solo se corredato di schemi, pcb e sketch, insomma un OS.
Comunque, come funziona ora che è montato e chiuso?

Ma le centraline per le moto non hanno connettori per la diagnostica come quelle per le auto?

Hai ragione Michele, ho lasciato il post "monco"!

devo e voglio finirlo!

vediamo se stasera riesco a mettere lo schema in eagle, il codice anocra primo di parte bluetooth e di km/h, e qualche foto dell'assemblato!

in più, proporrò la nuova versione semplificata che sto facendo in queste sere! magari mi date qualche consiglio!

V2 coming soon!

codice simile, ma con delle idee che ho avuto in questo giorni! vedremo!

a esposizzzione :slight_smile:

Grazie a tutti per i consigli! Zeus la bobina è un semplice trasformatore. Quello che dici tu, che poi sarebbe il cavo che va alla candela fa parte dell'avvolgimento secondario. Io il segnale lo prenderei sull'avvolgimento primario che è sottoposto alla tensione di 12v, perfetta per arduino! Comunque ho approfondito il discorso PulseIn e credo di aver capito come funziona. Ho già compilato una parte dello sketch finale, domani lo posto almeno potete verificare se quadra anche a voi. Sinceramente mi sembra troppo facile, ma staremo a vedere! Per adesso buona notte a tutti e grazie!

Non so cosa intendi dicendo che 12V sono perfetti per Arduino, forse è un concetto da approfondire PRIMA di fare i collegamenti.

Forse intendeva dire che, con un integrato o un partitore, è possibile abbassarla a 5V, sempre meglio che lavorare con i 400V.

PaoloP:

[quote author=Michele Menniti link=topic=121339.msg914160#msg914160 date=1346793768]
Non so cosa intendi dicendo che 12V sono perfetti per Arduino, forse è un concetto da approfondire PRIMA di fare i collegamenti.

Forse intendeva dire che, con un integrato o un partitore, è possibile abbassarla a 5V, sempre meglio che lavorare con i 400V.
[/quote]
speriamo.... :sweat_smile:

Scusate, ho confuso un po' le cose! La tensione di alimentazione della scheda può essere 12 volt, ma ai pin per non bruciarli ne possono entrare solamente 5, non uno di più. Per questo dovrò mettere una resistenza adeguata in serie per ridurre la tensione e una in parallelo x nel caso la corrente in uscita dalla centralina superi i 20mA come credo che faccia.
Prima di questo volevo però sottoporvi lo sketch che ho creato

const int LEDA = 1; //Led A collegato al pin 1
const int LEDB = 2; //Led B collegato al pin 2
const int LEDC = 3; //Led C collegato al pin 3
const int LEDD = 4; //Led D collegato al pin 4
const int LEDE = 5; //Led E collegato al pin 5
const int LEDF = 6; //Led F collegato al pin 6
const int LEDG = 7; //Led G collegato al pin 7
const int LEDH = 8; //Led H collegato al pin 8
const int LEDI = 9; //Led I collegato al pin 9
const int LEDL = 10; //Led L collegato al pin 10
int Impulso = 13;     //indica che il pin di input al quale arriveranno gli impulso è il 13
unsigned long duration; //indica che la durata non può assumere valori negativi, long viene usato xk ha dimensione doppia rispetto a int

void setup()
{
  pinMode(Impulso, INPUT); //configura il pin come input
  pinMode(LEDA, OUTPUT); //configura il pin come output
  pinMode(LEDB, OUTPUT);
  pinMode(LEDC, OUTPUT);
  pinMode(LEDD, OUTPUT);
  pinMode(LEDE, OUTPUT);
  pinMode(LEDF, OUTPUT);
  pinMode(LEDG, OUTPUT);
  pinMode(LEDH, OUTPUT);
  pinMode(LEDI, OUTPUT);
  pinMode(LEDL, OUTPUT);
}

void loop()
{
  duration = pulseIn(Impulso, HIGH); //misura il tempo in millisecondi che trascorre tra un impulso e l'altro
if (duration > 120) {
  digitalWrite(LEDA,LOW); // se il periodo è maggiore a 120 ms il led è spento
}
if (duration <= 120) {
  digitalWrite(LEDA,HIGH);// se il periodo è minore o uguale a 120 ms il led è acceso
}
if (duration > 60){
  digitalWrite(LEDB,LOW);
}
if (duration <= 60) {
  digitalWrite(LEDB,HIGH);
}
if (duration > 40) {
  digitalWrite(LEDC,LOW);
}
if (duration <= 40){
  digitalWrite(LEDC,HIGH);
}
if (duration > 30) {
  digitalWrite(LEDD,LOW);
}
if (duration <= 30){
  digitalWrite(LEDD,HIGH);
}
if(duration > 24) {
  digitalWrite(LEDE,LOW);
}
if (duration <= 24){
  digitalWrite(LEDE,HIGH);
}
if (duration > 20) {
  digitalWrite(LEDF,LOW);
}
if (duration <= 20) {
  digitalWrite(LEDF,HIGH);
}
if (duration > 17) {
  digitalWrite(LEDG,LOW);
}
if (duration <= 17) {
  digitalWrite(LEDG,HIGH);
}
if (duration > 15){
  digitalWrite(LEDH,LOW);
}
if (duration <= 15){
  digitalWrite(LEDH,HIGH);
}
if (duration > 13) {
  digitalWrite(LEDI,LOW);
}
if (duration <= 13) {
  digitalWrite(LEDI,HIGH);
}
if (duration > 12){
  digitalWrite(LEDL,LOW);
}
if (duration <= 12){
  digitalWrite(LEDL,HIGH);
}
}

Piolo94:
Scusate, ho confuso un po' le cose! La tensione di alimentazione della scheda può essere 12 volt, ma ai pin per non bruciarli ne possono entrare solamente 5, non uno di più. Per questo dovrò mettere una resistenza adeguata in serie per ridurre la tensione e una in parallelo x nel caso la corrente in uscita dalla centralina superi i 20mA come credo che faccia.
Prima di questo .... OMISSIS

Prima di questo postaci lo schema dei collegamenti perché da quello che hai detto rischi di bruciare tutto.
Le resistenze in serie limitano la corrente. Per la tensione devi usare un partitore resistivo.

tutto sta se la tua bobina sia a sistema CDI oppure TCI! qual'è la differenza: la prima è ad alta impedenza, con un capo del primario a massa! il volano carica un grosso condensatore che poi la centralina scarica sulla bobina al punto di fase! in questo caso si usano circa 300v! il secondo sistema invece funziona a 12v,la bobina é a bassa impedenza, hanno capo del primario collegato al positivo, la centralina manda un impulso di massa nel punto di fase! qui è più complicato perché interviene il tempo di dwell! ma a te l'anticipo non interessa! pertanto, scopri di che sistema si tratta misurando l'impedenza della bobina!