Go Down

Topic: centralina accensione motore (Read 27 times) previous topic - next topic

PaoloP

#150
Sep 06, 2013, 02:26 pm Last Edit: Sep 06, 2013, 02:31 pm by PaoloP Reason: 1

Non ho trovato nessuna breakout board, però.


--> http://www.futurlec.com/SMD_Adapters.shtml

Pighixxx ha una pick & place.  :smiley-mr-green: --> http://blog.fablabassano.org/

lucaleo

il problema è
secondo voi è umanamente possibile saldare a mano i il micros li sopra?
:smiley-mr-green: :smiley-mr-green:

leo72

@Paolo:
per breakout board intendo una scheda con GIA' saldato il chip sopra  ;)
Io non so saldare quel chip  :smiley-sweat: :smiley-sweat:

@Lucaleo:
il problema è la saldatura di un chip con uno spazio fra pin e pin di mezzo millimetro  :smiley-sweat:

lucaleo


@Paolo:
per breakout board intendo una scheda con GIA' saldato il chip sopra  ;)
Io non so saldare quel chip  :smiley-sweat: :smiley-sweat:

@Lucaleo:
il problema è la saldatura di un chip con uno spazio fra pin e pin di mezzo millimetro  :smiley-sweat:


infatti era quello che intendevo ahaha

però magari si può vedere se si trova qualche azienda che ci salda il chip su quelle basette a dei prezzi umani
oppure magari conviene farsele fare e saldare direttamente che comprare quelle e farsi fare le saldature li sopra

ma credete che ci possano essere un po' di penrsone interessate?
realizzare una arduino due standalone credo che permetterebbe di fare un sacco di cose interessanti!!

PaoloP

@Leo, io saldo male anche un PDIP.  :smiley-sweat:

Ma al FabLab dovrebbero avere anche il fornetto reflow. Quindi mette e salda. Servizietto completo.  :smiley-mr-green:

leo72


@Leo, io saldo male anche un PDIP.  :smiley-sweat:

Ah ah ah  :smiley-yell:
Beh anch'io non sono un mostro nelle saldature  ;)

Quote

Ma al FabLab dovrebbero avere anche il fornetto reflow. Quindi mette e salda. Servizietto completo.  :smiley-mr-green:

Sì ma non posso farmi 450 km fra andata/ritorno per saldare un componente  :smiley-sweat:
I componenti SMD sono stati inventati per far dannare gli hobbysti all'acqua di rose  ]:D

lucaleo



@Leo, io saldo male anche un PDIP.  :smiley-sweat:

Ah ah ah  :smiley-yell:
Beh anch'io non sono un mostro nelle saldature  ;)

Quote

Ma al FabLab dovrebbero avere anche il fornetto reflow. Quindi mette e salda. Servizietto completo.  :smiley-mr-green:

Sì ma non posso farmi 450 km fra andata/ritorno per saldare un componente  :smiley-sweat:
I componenti SMD sono stati inventati per far dannare gli hobbysti all'acqua di rose  ]:D


comunque ragazzi secondo me ce la si fa pure a "mano" :D
se monto un saldatore con una punta molto molto fine sulla struttura di un trapano a colonna (per far salire e scendere il saldatore senza vibrazioni ecc) io penso di poterci riuscire :D
poi sposto la basetta dal di sotto per allineare il pin che vglio saldare (stile carrelli di una fresa)

certo non è semplice e non è veloce ma secndo me si può fare ahaha

Michele Menniti




@Leo, io saldo male anche un PDIP.  :smiley-sweat:

Ah ah ah  :smiley-yell:
Beh anch'io non sono un mostro nelle saldature  ;)

Quote

Ma al FabLab dovrebbero avere anche il fornetto reflow. Quindi mette e salda. Servizietto completo.  :smiley-mr-green:

Sì ma non posso farmi 450 km fra andata/ritorno per saldare un componente  :smiley-sweat:
I componenti SMD sono stati inventati per far dannare gli hobbysti all'acqua di rose  ]:D


comunque ragazzi secondo me ce la si fa pure a "mano" :D
se monto un saldatore con una punta molto molto fine sulla struttura di un trapano a colonna (per far salire e scendere il saldatore senza vibrazioni ecc) io penso di poterci riuscire :D
poi sposto la basetta dal di sotto per allineare il pin che vglio saldare (stile carrelli di una fresa)

certo non è semplice e non è veloce ma secndo me si può fare ahaha


:smiley-eek-blue: spettacolare questa della saldatura a colonna :smiley-yell: ricordati però di metterlo il saldatore e non lasciare la punta da trapano da 12 :smiley-yell: :smiley-yell:
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

lucaleo





@Leo, io saldo male anche un PDIP.  :smiley-sweat:

Ah ah ah  :smiley-yell:
Beh anch'io non sono un mostro nelle saldature  ;)

Quote

Ma al FabLab dovrebbero avere anche il fornetto reflow. Quindi mette e salda. Servizietto completo.  :smiley-mr-green:

Sì ma non posso farmi 450 km fra andata/ritorno per saldare un componente  :smiley-sweat:
I componenti SMD sono stati inventati per far dannare gli hobbysti all'acqua di rose  ]:D


comunque ragazzi secondo me ce la si fa pure a "mano" :D
se monto un saldatore con una punta molto molto fine sulla struttura di un trapano a colonna (per far salire e scendere il saldatore senza vibrazioni ecc) io penso di poterci riuscire :D
poi sposto la basetta dal di sotto per allineare il pin che vglio saldare (stile carrelli di una fresa)

certo non è semplice e non è veloce ma secndo me si può fare ahaha


:smiley-eek-blue: spettacolare questa della saldatura a colonna :smiley-yell: ricordati però di metterlo il saldatore e non lasciare la punta da trapano da 12 :smiley-yell: :smiley-yell:


diciamo che dopo molti tentativi senza risultati potrei mettercela la punta... ma da 24 ahahah

michele visto che tu sei molto ferrato (vista la tua guida) che dici, sarebbe molto difficile far funzionare quel micro onboard una volta montato su una basetta che renda i pin umani? :D

Michele Menniti

Non c'è niente di difficile, c'è solo da fare pratica, se lavori con componenti smd ti serve un saldatore con punta finissima per i componenti passivi e per gli integrati a passo SOIC; dal TSSOP in poi (pin molto più ravvicinati) si usa una punta più larga ed il flussante, esistono su YT migliaia di video che spiegano come si salda.Se anche usi l'adattatore la saldatura smd la devi fare comunque, tanto vale salradrlo direttamente sul PCB.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

lucaleo


Non c'è niente di difficile, c'è solo da fare pratica, se lavori con componenti smd ti serve un saldatore con punta finissima per i componenti passivi e per gli integrati a passo SOIC; dal TSSOP in poi (pin molto più ravvicinati) si usa una punta più larga ed il flussante, esistono su YT migliaia di video che spiegano come si salda.Se anche usi l'adattatore la saldatura smd la devi fare comunque, tanto vale salradrlo direttamente sul PCB.


beh fare un pcb con quelle piste potrebbe essere complicato per me :D

sono indeciso se passare al 1284 o fare un enorme balzo al SAM3X8E...
credo che partirò acquistando una board arduino 2 (che sono sei mesi che mi trattengo dal comprare visto che non so manco sfruttare la uno ahaha)
voglio vedere di iniziare a integrare un controllo del carico per l'anticipo
e questo potrei farlo col 1284
ma poi non potrei provare a fare un sistema di iniezione, che con il SAM3X8E ci starebbe alla grande con tutta quella ram e le prestazioni decisamente superiori (avrò bisogno di calcoli più complessi)
è vero non ha eeprom ma pazienza, ce ne metto una esterna o una sd, posso iniziare con la flash in ogni caso ne ha tantissima :D

ho ottimizzato il codice, più tardi vado a provarlo ma andrà quasi di sicuro
ora nella eeprom metto i valori dell'anticipo che sono molto più leggibili

Code: [Select]


#include <EEPROM.h>

 byte arrayMappatura[]={  //array per mappatura






25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  
8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  
7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  
6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  
5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  
4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  
3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  
2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  
1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  



                             
             };

void setup()
{ }

void loop()
{
for (int i=0; i < 1000; i++){                         //per ogni valore della mappa
 
     EEPROM.write(i, arrayMappatura[i]);                   //inserisci valore 0 mappatura in posizione 0 eeprom fino a valore 999 in posizione 999

     delay(10);
  }
 
}


lucaleo

#161
Sep 07, 2013, 01:37 pm Last Edit: Sep 07, 2013, 01:39 pm by lucaleo Reason: 1
e il programma della centralina lo trasforma in ritardo in setmapping
ho anche inserito il limitatore di giri alla fine della mappa

Code: [Select]


#include <StopWatch.h>
#include <EEPROM.h>

const byte bobina1 = 7;    // output bobina1 su pin7
const byte pin2 = 2;       // interrupt startt
const byte pin3 = 3;       // interrupt stopp

volatile int statestartt = HIGH;    // stato normale startt
volatile int statestopp=HIGH;       // stato normale stopp

StopWatch sw_micros(StopWatch::MICROS);    // timer durata dente
StopWatch sw_micros1(StopWatch::MICROS);   // timer attesa

byte mappatura[1000];      //dichiaro array mappatura
byte ritardo=90;           //dichiaro ritardo
byte cut=0;                //per limitatore rpm
long time = 0;             //valore durata dente microsecondi
long tritardo1 = 0;        //valore durata ritardo in microsecondi

void setup() {
 pinMode(bobina1, OUTPUT);  //bobina
 pinMode(pin2, INPUT_PULLUP);
 pinMode(pin3, INPUT_PULLUP);
 attachInterrupt(0, startt, FALLING);   //interrupt in inizio dente
 attachInterrupt(1, stopp, RISING);     //interrupt fine dente
 SetMapping();                          //compila mappatura[] copiando la eeprom interna
}

void loop()
{

 if(statestartt == LOW){                //se il dente è iniziato
   sw_micros.start();                   //avvia timer durata dente
   statestartt=HIGH;                    // reimposta startt
 }


 if(statestopp == LOW) {                //se il dente è finito
   time=sw_micros.elapsed();            //memorizza durata dente in "time"
   sw_micros1.start();                  //avvia timer attesa
   statestopp = HIGH;                   //reimposta stopp
   sw_micros.reset();                   //azzera timer durata dente

   if(time<250){                        // se il dente dura meno di 250 micros, rpm maggiore di 6666
     cut=1;                             //disabilita accensione candela
   }                                            
   else
     cut=0;                             // se rpm minore di 6666 abilita accensione candela
   if(time>1250){                       // se il dente dura più di 1250 micros, rpm minore di 1333                  
     ritardo=90;                        // anticipo fisso 0°btdc  
   }  
   
   else ritardo=mappatura[time-250];    // se la durata del dente è tra 250 e 1250 micros assegna il valore di ritardo in mappatura
                                        // time-250 trasla time alla posizione esatta in mappa, time=250  250-250=0, verrà usato mappatura[0]

     tritardo1=(time*ritardo)/10;       //calcola durata ritardo in microsecondi, è importante che la moltiplicazione avvenga prima della divisione, genera un errore più piccolo
 }


 if(cut==0){                               // se rpm minore di 6666
   if(sw_micros1.elapsed() >= tritardo1){  //se il tempo che è passato dalla fine del dente è maggiore della durata del ritardo
     sw_micros1.reset();                   //azzera timer ritardo

     digitalWrite(bobina1, HIGH);          //scocca scintilla
     
     delayMicroseconds(10);                //attendi

     digitalWrite(bobina1, LOW);           //carica condensatore
     
   }
 }


} // End Loop

void startt()//interrupt startt
{
 statestartt = !statestartt;  //inverti startt
}

void stopp()//interrupt stopp
{
 statestopp = !statestopp;    //inverti stopp
}

void SetMapping()                          //per copia mappatura da eeprom a ram in setup
{
 for (int x; x<1000;x++)                  //per ogni valore della mappatura
 {
   mappatura[x] = 90- EEPROM.read(x);     //converti mappatura anticipo eeprom in mappatura ritardo rispetto a fine dente
                                          // questo solo perchè la mappatura anticipo è più leggibile di quella ritardo
 }                                      
}



cece99

Io salderei il chippettino con solder cream e aria calda. Un bel chinotto e un adattatore professionale.
Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

icio

Quote from: lucaleo

se monto un saldatore con una punta molto molto fine sulla struttura di un trapano a colonna (per far salire e scendere il saldatore senza vibrazioni ecc) io penso di poterci riuscire :D
poi sposto la basetta dal di sotto per allineare il pin che vglio saldare (stile carrelli di una fresa)
certo non è semplice e non è veloce ma secndo me si può fare ahaha


Non è la tecnica giusta , devi fare dei movimenti specifici con il saldatore e non puramenti perpendicolari al pcb

Mi piace questo tuo lavoro, soprattutto per la velocità con il quale fai le modifiche, sembra che non stai pensando ad altro in questo periodo :D

lucaleo


Quote from: lucaleo

se monto un saldatore con una punta molto molto fine sulla struttura di un trapano a colonna (per far salire e scendere il saldatore senza vibrazioni ecc) io penso di poterci riuscire :D
poi sposto la basetta dal di sotto per allineare il pin che vglio saldare (stile carrelli di una fresa)
certo non è semplice e non è veloce ma secndo me si può fare ahaha


Non è la tecnica giusta , devi fare dei movimenti specifici con il saldatore e non puramenti perpendicolari al pcb

Mi piace questo tuo lavoro, soprattutto per la velocità con il quale fai le modifiche, sembra che non stai pensando ad altro in questo periodo :D


in effetti è così ahaha
complice il fatto che il lavoro quest'anno purtroppo è poco e che il posto di lavoro è lo stesso posto in cui cazzeggio con sta roba :D

Go Up