V I S U A L I Z Z A D I S C U S S I O N E |
Mauri78 |
Inserito il - 29/01/2020 : 09:01:08 Buongiorno a tutti, di seguito le foto della batteria che ho realizzato per lo scooter elettrico di mio papà. E' una 8P13S 48V 23Ah realizzata con samsung 29E provenienti da NKON. Nonostante la serie infinita di imprevisti è venuto un gran lavoro! nell'ordine sono successe le seguenti cose: 1) Il caricabatterie da 48V 4A è esploso appena ho infilato la spina :-( riparato sostituendo il ponte 2) La puntatrice arrivato a metà batteria ha smesso di puntare :-(. Ne ho costruita una al volo con il trafo di un microonde. 3) La scatola fatta dal falegname era troppo stretta dal lato interno, per cui l'ho dovuta fresare per farci stare la batteria.
La batteria pesa 8kg di cui 5 di celle e bms e 3 di legno, sostituisce una piombo da 48V 20Ah che pesava quasi 30kg! Lo scooter è più leggero, più scattante e sviluppa una maggiore velocità di punta.
Immagine:
163,07 KB
Immagine:
123,58 KB
Immagine:
204,05 KB
Immagine:
183,63 KB
Immagine:
221 KB
Immagine:
182,27 KB
Immagine:
204,25 KB
Immagine:
201,02 KB
Immagine:
248,37 KB
Immagine:
201,25 KB |
18 U L T I M E R I S P O S T E (in alto le più recenti) |
Mauri78 |
Inserito il - 03/02/2020 : 08:51:16 Ciao, esatto! Quel kit va bene ;-). Che io sappia arduino uno ha sempre il 328P, il 16U2 serve solo per implementare il convertitore usb-uart e spesso, nei cloni cinesi, è sostituito da un CH340G, più raramente con un FTDI.
Maurizio |
bik3r |
Inserito il - 31/01/2020 : 20:36:01 Mauri giusto per capirci questo kit va bene?
https://www.banggood.com/UNO-R3-USB-Development-Board-With-LCD-1602-Keypad-Shield-Kit-p-952802.html?rmmds=search&cur_warehouse=CN
Ho visto arduino uno r3 con diversi microprocessori: ATmega328P, ATmega16U2 (removibile), ma la programmazione dovrebbe essere la stessa. |
Mauri78 |
Inserito il - 31/01/2020 : 09:03:15 Se qualcuno lo vuole usare e non sa come fare deve solo chiedere... ;-) @Andrea104 se ti serve una puntatrice è l'occasione giusta, con la tua manualità ci metti pochissimo a farla ;-)
|
Mauri78 |
Inserito il - 31/01/2020 : 09:01:43 /* Arduino Spot Welder
0 < A0 value < 60 --> right 60 < A0 value < 200 --> up 200 < A0 value < 400 --> down 400 < A0 value < 600 --> left 600 < A0 value < 800 --> select */
#include <EEPROM.h> /* Display setting & pins */ #include <LiquidCrystal.h> //LCD pin to Arduino const int pin_RS = 8; const int pin_EN = 9; const int pin_d4 = 4; const int pin_d5 = 5; const int pin_d6 = 6; const int pin_d7 = 7;
const int pin_BL = 10; /*foot pedal input*/ const int FP = 0; /* SSR output */ const int SSR = 1;
/*default welding timing*/ #define T1 10 /*first pulse time (ms)*/ #define P 300 /*pause time between pulses (ms)*/ #define T2 30 /*second pulse time (ms)*/ #define WAIT 1000 /* pause between welding sequences*/
/* FSM states */ #define PUNTA 0 #define SET_T1 1 #define SET_P 2 #define SET_T2 3
LiquidCrystal lcd( pin_RS, pin_EN, pin_d4, pin_d5, pin_d6, pin_d7);
int first = T1; int pause = P; int second = T2; int stato = 0; int key; int EEaddr = 0;
void setup() { /*Read setting soterd in EEprom*/ EEPROM.get(EEaddr, first); if (!((first >= 10) && (first <= 500))) first = T1; EEaddr += sizeof(int); EEPROM.get(EEaddr, pause); if (!((pause >= 10) && (pause <= 1000))) pause = P; EEaddr += sizeof(int); EEPROM.get(EEaddr, second); if (!((second >= 0) && (second <= 500))) second = T2; EEaddr = 0; lcd.begin(16, 2); lcd.setCursor(0,0); lcd.print("SpotWelder V1.10"); lcd.setCursor(0,1); lcd.print(first, DEC); lcd.print("-"); lcd.print(pause, DEC); lcd.print("-"); lcd.print(second, DEC); lcd.print(" ms");
/*pins initialization*/ pinMode(FP, INPUT); digitalWrite(FP, HIGH); pinMode(SSR, OUTPUT); digitalWrite(SSR, LOW); stato = 0; }
void loop() { static int8_t lcd_flag = 0; key = analogRead (0); switch (stato){ case PUNTA: if (lcd_flag){ lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(0,1); lcd.print(first, DEC); lcd.print("-"); lcd.print(pause, DEC); lcd.print("-"); lcd.print(second, DEC); lcd.print(" ms"); lcd_flag = 0; } if ((key > 600) && (key < 800)){ /*select pressed*/ stato = SET_T1; delay(200); lcd_flag = 1; } if (key < 60){ /*right pressed*/ lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(0,1); lcd.print("Restore defaults"); /*Store timings in EEprom*/ EEaddr = 0; first = T1; EEPROM.put(EEaddr, first); EEaddr += sizeof(int); pause = P; EEPROM.put(EEaddr, pause); EEaddr += sizeof(int); second = T2; EEPROM.put(EEaddr, second); EEaddr = 0; delay(500); lcd_flag = 1; } if(get_button(FP)){ lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(0,1); lcd.print("WELDING"); lcd_flag = 1; /*Foot pedal pressed --> start welding sequence*/ /*first pulse*/ digitalWrite(SSR, HIGH); delay(first); digitalWrite(SSR, LOW); /*pause between pulses*/ delay(pause); /* second pulse*/ digitalWrite(SSR, HIGH); delay(second); digitalWrite(SSR, LOW); /*pause between two pulses sequence*/ delay(WAIT); } break; case SET_T1: if (lcd_flag){ lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(0,1); lcd.print(" T1 = "); lcd.print(first, DEC); lcd.print("ms"); lcd_flag = 0; } if ((key > 60) && (key < 200)) { /*select up*/ if (first < 500){ first += 10; lcd_flag = 1; delay(200); } } if ((key > 200) && (key < 400)) { /*select down*/ if (first > 20){ first -= 10; lcd_flag = 1; delay(200); } } if ((key > 600) && (key < 800)){ /*select pressed*/ stato = SET_P; delay(200); lcd_flag = 1; }
break; case SET_P: if (lcd_flag){ lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(0,1); lcd.print(" P = "); lcd.print(pause, DEC); lcd.print("ms"); lcd_flag = 0; } if ((key > 60) && (key < 200)) { /*select up*/ if (pause < 1000){ pause += 10; lcd_flag = 1; delay(200); } } if ((key > 200) && (key < 400)) { /*select down*/ if (pause >= 20){ pause -= 10; lcd_flag = 1; delay(200); } } if ((key > 600) && (key < 800)){ /*select pressed*/ stato = SET_T2; delay(200); lcd_flag = 1; } break; case SET_T2: if (lcd_flag){ lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(0,1); lcd.print(" T2 = "); lcd.print(second, DEC); lcd.print("ms"); lcd_flag = 0; } if ((key > 60) && (key < 200)) { /*select up*/ if (second < 500){ second += 10; lcd_flag = 1; delay(200); } } if ((key > 200) && (key < 400)) { /*select down*/ if (second >= 10){ second -= 10; lcd_flag = 1; delay(200); } } if ((key > 600) && (key < 800)){ /*select pressed*/ /*Store timings in EEprom*/ EEaddr = 0; EEPROM.put(EEaddr, first); EEaddr += sizeof(int); EEPROM.put(EEaddr, pause); EEaddr += sizeof(int); EEPROM.put(EEaddr, second); EEaddr = 0; stato = PUNTA; delay(200); lcd_flag = 1; } break; } }
int8_t get_button(uint8_t pin) { int8_t push; push = digitalRead(pin); delay(2); if(!(digitalRead(pin)) && (push)){ return 1; }else{ return 0; } } |
Mauri78 |
Inserito il - 31/01/2020 : 09:00:35 Confermo quello che dice bik3r, caricare uno sketch già debuggato su arduino è un'operazione davvero semplice. Molto più semplice di quanto immagini. Il progetto della mia puntatrice non è adatto all'uso di una batteria per un motivo molto semplice: io uso un SSR per azionare il trasformatore pilotata dalla tensione di rete, per l'uso di una batteria bisognerebbe usare uno o più mosfet. Il mio timer è programmabile, per cui i tempi si potrebbero adattare, ma poi manca la scheda con i mosfet... inizia a non essere più tanto plug and play... Invece se lo volete usare con il trasf0 del microonde la cosa si riduce "soltanto" a un lavoretto manuale consistente nel modificare il trasformatore e nel fare un paio di cablaggi decisamente semplici. |
andrea 104KG |
Inserito il - 31/01/2020 : 01:45:07 ma vedi il problema sono i "tempi di apprendimento" e soprattutto i tempi molto brevi in cui dimentico le cose. Cambiavo le rom ai primi telefoni windows mobile e android, ma dovessi farlo ora rinucerei, mi ci voleva una settimana di studio e sinceramente non mi ricordo nulla, come non mi ricordo nulla di tantissime cose fatte in tanti settori. Per quello mi piace jobike, è un immenso archivio che per me che sono smemorato, torna utilissimo, basta usare il tasto cerca Magari fosse così per tante altre cose. Purtroppo è verissimo per me quello che lessi un tempo in una vignetta di lupo Alberto "Più studi più sai. Più sai e più dimentichi. Più dimentichi e meno sai. Ma allora, chi te lo fa fare???"
|
bik3r |
Inserito il - 30/01/2020 : 23:49:36 | andrea 104KG ha scritto:
Per me stai parlando in vulcaniano, puoi mettere iltraduttore automatico? Penso che interessi a parecchie persone, specialmente se può essere pilotato da batteria auto, come dice bik3r
|
Andrea se sei riuscito a programmare il tsdz2 con il software open, sono sicuro che saprai caricare un programmino su una scheda "standard" avendo già il progetto fatto. I problemi arrivano quando vuoi modificare o aggiungere funzioni, allora bisogna conoscere le librerie e un minimo di linguaggio di progarmmazione. Se bisogna "solo" copiare un progetto, con un video su youtube, diventa davvero alla portata di molte più persone. |
andrea 104KG |
Inserito il - 30/01/2020 : 23:08:48 Per me stai parlando in vulcaniano, puoi mettere iltraduttore automatico? Penso che interessi a parecchie persone, specialmente se può essere pilotato da batteria auto, come dice bik3r |
bik3r |
Inserito il - 30/01/2020 : 21:36:29 | Mauri78 ha scritto: Se a qualcuno può essere utile posso condividere lo sketch che ho usato per Arduino, basta un'arduino uno e un LCD shield e avete un controller per puntatrice bello e pronto ma soprattutto personalizzabile. Lo sketch è commentato e di facile lettura, le uniche parti esterne da filare sono lo switch che fa partire gli impulsi e l'SSR.
Maurizio
|
Se ti va di postarlo sicuramente a qualcuno verrà utile. Secondo te lo stesso controllore sarebbe in grado di pilotare una batteria da auto per creare una puntatrice che non crea sbalzi di rete in casa. |
Mauri78 |
Inserito il - 30/01/2020 : 17:01:44 Grazie a tutti per i complimenti :-). Andrea, purtroppo mio papà è in Puglia, io a Torino... non riesco facilmente a fare una foto, ma credimi è una vera schifezza! :-)
Se a qualcuno può essere utile posso condividere lo sketch che ho usato per Arduino, basta un'arduino uno e un LCD shield e avete un controller per puntatrice bello e pronto ma soprattutto personalizzabile. Lo sketch è commentato e di facile lettura, le uniche parti esterne da filare sono lo switch che fa partire gli impulsi e l'SSR.
Maurizio |
andrea 104KG |
Inserito il - 30/01/2020 : 12:24:17 Bè lavoro eccezionale, se puoi metti una foto dello scooter sono curioso, mai visto uno scooter elettrico in vita mia.. La trasformazione al volo del microonde è poi un vero colpo da maestro |
blindo7 |
Inserito il - 30/01/2020 : 11:44:18 complimenti hai fatto un ottimo lavoro!!! che rogna tra puntatrice e charger,ma alla fine hai risolto e gli hai dato uno scooter molto più maneggevole |
Mauri78 |
Inserito il - 29/01/2020 : 12:30:23 Si, capisco e condivido che sicuramente ci sono dei materiali migliori, in ogni caso la plastica non fa certamente di meglio come capacità di trasmettere il calore per raffreddare le celle. Nel mio caso non ho trovato nessuna materiale alternativo al legno per fare un case della stessa forma e dimensione di quello originale dello scooter. In ogni caso credo che la batteria resterà quasi fredda perchè la corrente necessaria per lo scooter è abbastanza ridicola rispetto alla corrente massima che può erogare quella batteria. |
Steu851 |
Inserito il - 29/01/2020 : 10:50:34 | Mauri78 ha scritto:
@Steu perchè dici che non ti piace il legno?
|
Non è ignifugo* e con quello spessore non permette a celle e BMS di raffreddarsi. Stavo aggingendo che con l'umidità si gonfia e marcisce ma hai scritto che è compensato marino impermeabilizzato, quind i questo aspetto è risolto.
* Lo so la maggior parte dei case non lo sono e se dovesse prender fuoco non c'è case che possa resistere |
Mauri78 |
Inserito il - 29/01/2020 : 09:57:13 Si, si è inanellata tutta una serie di eventi sfigati, ma ne sono uscito! :-) Il falegname ha decisamente abbondato! Ha fatto un lavoro davvero perfetto, ha riprodotto tutte le guide e gli incastri della batteria originale con involucro plastico ma ha fatto un case davvero antiatomico! E' tutto compensato marino impermeabilizzato con vernici apposite. @Steu perchè dici che non ti piace il legno?
@Ronco è una schifezza di scooter cinese da supermercato, brutto e illegale. La batteria vale più di tutto il resto ma mio papà ci teneva ad averla... Sono circa due anni che me la chiede, ho sempre tergiversato perchè volevo evitare che utilizzasse quel catorcio ma alla fine lo usava lo stesso per cui ho ceduto... |
ronco |
Inserito il - 29/01/2020 : 09:34:54 Ma che scooter è che ha la batteria da 48 volt?
[quote]Messaggio di Mauri78
Buongiorno a tutti, di seguito le foto della batteria che ho realizzato per lo scooter elettrico di mio papà. E' una 8P13S 48V 23Ah realizzata con samsung 29E provenienti da NKON. Nonostante la serie infinita di imprevisti è venuto un gran lavoro! nell'ordine sono successe le seguenti cose: 1) Il caricabatterie da 48V 4A è esploso appena ho infilato la spina :-( riparato sostituendo il ponte 2) La puntatrice arrivato a metà batteria ha smesso di puntare :-(. Ne ho costruita una al volo con il trafo di un microonde. 3) La scatola fatta dal falegname era troppo stretta dal lato interno, per cui l'ho dovuta fresare per farci stare la batteria.
La batteria pesa 8kg di cui 5 di celle e bms e 3 di legno, sostituisce una piombo da 48V 20Ah che pesava quasi 30kg! Lo scooter è più leggero, più scattante e sviluppa una maggiore velocità di punta.
|
Barba 49 |
Inserito il - 29/01/2020 : 09:20:45 Mamma mia, che catena di sfiga...
Certo che il tuo falegname ha un po' abbondato con lo spessore del compensato!!!
Complimenti per il lavoro, lo credo bene che lo scooter va molto meglio di prima!!! |
Steu851 |
Inserito il - 29/01/2020 : 09:12:10 | Messaggio di Mauri78
B 2) La puntatrice arrivato a metà batteria ha smesso di puntare :-(. Ne ho costruita una al volo con il trafo di un microonde.
|
Bel lavoro, spero tu non abbia smontato il trasformatore dal microoonde della cucina facendo infuriare la moglie
Unico dubbio, già espresso altre volte, è l'uso del legno, ma è una fissazione mia |
|
|