Nota: Devi essere registrato per poter inserire un messaggio. Per registrarti, clicca qui. La Registrazione è semplice e gratuita!
V I S U A L I Z Z A D I S C U S S I O N E
washer
Inserito il - 10/08/2016 : 21:46:20 Buona serata a tutti quanti.
Giochellando con il sensore di velocità di un ciclotakimentro, ho visto che al passaggio del magnete il sensore cambia la la sua resistenza da un paio di GOhm a qualche decina. Ho provato allora a usarlo per un interruttore che funzioni da sensore di pedalata, con questo (emh) “schema”:
Con condensatore da 1 uF si attiva gas per circa un secondo, con 22uF per una decina di secondi.
I magneti sono incastrati nelle 5 viti della coroncina interna.
Qualche baco è evidente, funziona anche all’indietro, e si può barare tenendo il pedale in una posizione che mantenga un magnete prossimo al sensore. Ma queste sarebbero pratiche meschine e fraudolente.
Il difetto peggiore è che toglie un po’ di tensione a signal, e la bipa non accelera tutto.
Avete una soluzione, consigli, stroncature?
50 U L T I M E R I S P O S T E (in alto le più recenti)
Ibla
Inserito il - 19/10/2016 : 08:03:04
Ibla
Inserito il - 19/10/2016 : 07:59:23
Imer
Inserito il - 17/10/2016 : 07:06:44 io aspetto washer....
Ibla
Inserito il - 16/10/2016 : 15:52:23
Imer
Inserito il - 02/10/2016 : 10:02:19 Mi hai letto nel pensiero! La mia idea era appunto di fare un wattmetro da montare nel pacco batteria , che mi trasmettesse corrente e tensione al display montato al manubrio, cosi quando non serve lo tolgo.
Ciao Imer
Steu851
Inserito il - 02/10/2016 : 00:06:40 ecco, un bel wattmetro che non necessiti far girare per la bipa cavi di potenza, con display personalizzabile, che non abbia bisogno di smartphone, suggerisco interessa anche a me. Vi seguo con attenzione.
Imer
Inserito il - 01/10/2016 : 12:24:49 Facciamo un punto altrimenti non capisco più nulla IL PAS funziona ? Se si sarebbe bello che ci metti lo schema e il software cosi chi si vuole sbizzarrire ha un inizio.
Adesso vuoi misurare la corrente del motore ? nessun problema se il mio sensore di cambiata funziona, sarà il mio prossimo lavoro. Ma forse conviene aprire un altro post altrimenti non si capisce più nulla. Che dici ? Ciao IMer
washer
Inserito il - 30/09/2016 : 22:59:13
Ciao Imer, qua ci piacerebbe occuparci di current sensing. Come si fa?
Ibla
Inserito il - 30/09/2016 : 17:27:20
Ibla
Inserito il - 30/09/2016 : 17:25:55
Imer
Inserito il - 30/09/2016 : 09:32:32 Cosa succede ??? è andato in loop il pas e non si ferma piu' neppure per scrivere
Ciao Imer
Ibla
Inserito il - 29/09/2016 : 09:37:10
Ibla
Inserito il - 27/09/2016 : 16:31:04
Ibla
Inserito il - 26/09/2016 : 13:12:43
washer
Inserito il - 25/09/2016 : 21:05:55 Grazie.
Appena istallato, pedalando a vuoto attacca e stacca come da progetto. Domani provo su strada.
Al momento attacco e stacco un connettore. Mi piacerebbe ricavare uno stacca batteria generale da un connettore XT90, magari con fusibile.
Imer
Inserito il - 25/09/2016 : 11:41:14 Visto che Snoopy cerca......
Sto modificando lo stepdown forse ti interessa. Se hai comprato quelli che montano IC LM2596 ho scoperto guardando i datasheet,che se il pin 5 è a massa si accende ,se lo porti alto si spegne. Adesso sto tirando fuori il 5 Volt dalla centralina in modo che mi possa pilotare l'accensione dello stepdown. Mi conosco se metto un interruttore a parte è più le volte che lo scordo. Adesso giretto tra lago D'ora e Maggiore e in settimana proseguo. Link datasheet: http://www.ti.com/lit/ds/symlink/lm2596.pdf da pag 12 ci sono dei esempi
Ciao Imer
Ibla
Inserito il - 24/09/2016 : 01:27:06
Immagine:
36,05 KB
washer
Inserito il - 23/09/2016 : 22:45:20 Qua sotto!
Ho risalito la china. Anzi sono un po' più avanti: ho verificato il funzionamento con lo step-down collegato ai 36v.
EDIT: qua c'era una foto con collegamenti sbagliati.
Monterò domenica: domani mi serve ancora una bici funzionante.
Ibla
Inserito il - 23/09/2016 : 12:00:04
washer
Inserito il - 21/09/2016 : 20:37:11 Già provato il cambio di cavo e PC ... nisba. Oggi è arrivata una manciata di arduini cinesi: 4 funzionano, dopo lo sbattone per i driver. Vado a mettere un disco da ibla, e poi connetto ...
Ibla
Inserito il - 21/09/2016 : 16:38:18
Imer
Inserito il - 20/09/2016 : 11:44:52 Si il problema è la comunicazione. Puoi ricaricare il bootloader usando un altro arduino. Prima farei la prova a vedere se comunica su un'altro pc se ne hai la possibilita.
Ciao Imer
washer
Inserito il - 19/09/2016 : 21:29:32 Boh? Ho messo codici a muzzo per una settimana, senza problemi, ma ieri ha smesso di comunicare col PC. Ho provato vari balletti sul tasto reset senza esito. I numerosi post sul web per il mio errore, prevedono che la tappa successiva sia ricaricare il bootloader. Prima di buttare la scheda. Concordi?
Imer
Inserito il - 19/09/2016 : 07:10:38 Cosa hai comnbinato ?
Ciao Imer
washer
Inserito il - 18/09/2016 : 21:50:33 macchè, la fortuna del principiante mi ha abbandonato ... Al caricamento dell'ultimo codice la scheda ha smesso di funzionare e comunicare.
avrdude: stk500_getsync(): not in sync: resp=0x00
Metto su un disco che è meglio ...
Eze73
Inserito il - 17/09/2016 : 23:44:12
andrea 104KG ha scritto:
Questo post assieme a quello della bicicletta creata da zero da washer è la dimostrazione che gli alieni sono tra di noi ...
gia'...fortuna ogni tanto qualche immagine e video( comunque per me incomprensibili) ...
io c ero...
washer
Inserito il - 17/09/2016 : 23:15:14 Mi hai messo sbrescia, domani lo istallo. Prenderò 3s dai paralleli della batteria. Il codice si può sfoltire, dallo stato iniziale, con entrambi i sensori diseccitati, sono sufficienti i due passi successivi.
Imer
Inserito il - 17/09/2016 : 18:52:13 Ok, se ci sono problemi legati ai disturbi prova come ho indicato, o proviamo con un paio di condensatori. Rimango in tremante e trepidante attesa di sapere se funziona Ciao Imer
Ibla
Inserito il - 17/09/2016 : 12:35:02
washer
Inserito il - 16/09/2016 : 21:39:12 Al momento son messo così. Funziona.
Imer
Inserito il - 16/09/2016 : 12:30:17Grazie
Ibla
Inserito il - 16/09/2016 : 10:07:30 Beh!Almeno questo sono riuscita a... decriptarlo!
Immagine:
107,73 KB
Imer
Inserito il - 16/09/2016 : 07:24:24 Se vuoi puoi fare l'ingresso di arduino in questo modo , cosi puoi essere piu' elastico con le tensioni di ingresso.
Immagine:
526,13 KB
Scusate la dimensione ma con windows no riesco a ridimensionare.
Ciao Imer
washer
Inserito il - 15/09/2016 : 21:51:12 Fatto, funziona.
Sono al banco, la bici sta facendo i suoi 8 km/die con un interruttore sulla catena. Aspetto lo step down per poi inscatolare il tutto in maniera non provvisoria.
Comunque sì, mi son preso una cotta.
Imer
Inserito il - 15/09/2016 : 21:22:00 Si lo puoi fare. Devi stare attento che tutto sia a 5V. Arduino ti ha stregato, vedo ti stai immergendo Ma lo hai montato l' ArduPas sulla bici? Ciao Imer
washer
Inserito il - 15/09/2016 : 20:53:50 Girellando per Arduino Reference, scopro che si possono abilitare i suoi resistori di pull up e che forse posso eliminare le resistenze sul sensore ...
stai attento perché alcuni hanno i condensatori bassi di isolamento e non superano i 50 V.
Ciao Imer
Imer
Inserito il - 13/09/2016 : 12:10:07 Se non usi il led di segnalazione del pin 13 ci togli 5/10 mA. Per lo step-down sto guardando , non ho voglia di fare lo stampato e tutto il resto. Con che tensione entri ? Ciao Imer
washer
Inserito il - 12/09/2016 : 22:47:11 Sono contento di aver seguito il tuo consiglio. Guarderò gli interrupts per prendere sonno, ma con l'acceleratore a manopola i freni possono stare dove sono.
Al momento alimento solo da USB. Al banco. Dalla mia centralina è improponibile. Dimmi se trovi lo step down, io ho pensato a LM317. La schedina mi consuma 22 mA, è un consumo piuttosto costante, o varia parecchio a seconda dell'impegno?
Imer
Inserito il - 12/09/2016 : 21:16:12 Dai che sta venedo fuori qualcosa di carino, tu che all'inzio non mi sembravi molto convinto. Se vai avanti cosi ti fai la centralina completa . Se vuoi integrare i freni conviene usare interrupts(), ti svincoli dal programma principale , stai attento che non tutti i pin si possono usare devi far riferimento al tipo di arduino che usi.
topic OFF Una domanda ma come lo alimenti arduino ? Io ho fatto delle prove con il mio sensore di cambiata, ma ho problemi di alimentazione, la tensione che prelevo dalla centralina del bafang è gia bassa di suo e con il motore a vuoto funziona bene, ma come il motore va a carico (appoggio la ruota a terra) mi manda in reset il micro per tensione bassa. Sto cercando uno step-down che sopporti 50V e che riesca ad essere infilato nella base della batteria.
Ciao Imer
washer
Inserito il - 12/09/2016 : 20:07:24 Ci sono cinque magneti sulla circonferenza. Il tempo sarà settato sui risultati pratici, ma credo che non sia critico, con l'acceleratore a manopola. Come pure la gestione dei freni. Ovviamente l'appetito sale ...
Imer
Inserito il - 12/09/2016 : 12:06:13 Direi che ci sei ,adesso devi installarlo e li avrai la prova del nove. Il mio unico dubbio è se usi un magnete solo, il tempo sarà alto di conseguenza lo spegnimento perchè smetti di pedalare avverra dopo "molto" tempo.
Ciao Imer
washer
Inserito il - 11/09/2016 : 21:02:04 Sembra funzionare, ma non mi piace l'idea che il corretto valore di flag per l'attivazione, si basi sui cicli di esecuzione del programma. Preferisco il tuo approccio a stati.
Con questo codice:
/*
PAS
Attiva l'assistenza, fornendo al potenziometro alimentazione 5V quando i pedali girano col verso corretto e sufficiente velocità.
Il circuito:
* sensore di Hall G collegato al pin 12
* sensore di Hall W collegato al pin 11
* resistori 5,7K collegati tra V+ e pin 11 e 12
* uscita V+ 5V dal pin 10 quando viene attivata l'assistenza.
* Accende il LED giallo sulla scheda, pin 13, quando viene attivata l'assistenza.
*
11.09.2016
by Washer
*/
// costanti:
const byte sensoreG = 11; // pin del sensore G
const byte sensoreW = 12; // pin del sensore W
const byte potenziometro = 10; // pin dell'uscita al potenziometro
const byte led = 13; // pin dell'uscita al LED
unsigned long tempoMax = 1000; // imposta a un tot secondi un intervallo di tempo
// variabili:
boolean errore = false; // variabile per controllare anomalie nel senso di rotazione o nei tempi
unsigned long tempo = 0; // variabile per controllare i tempi di attivazione dei sensori
byte passo = 0; // variabile per controllare la sequenza di attivazione dei sensori
void setup() {
// inizializza i pin led e potenziometro come output:
pinMode(led, OUTPUT);
pinMode(potenziometro, OUTPUT);
// initializza i pin sensoreG e sensoreW come input:
pinMode(sensoreG, INPUT);
pinMode(sensoreW, INPUT);
digitalWrite(potenziometro, LOW);
digitalWrite(led, LOW);
}
void loop() {
tempo = millis();
while (digitalRead(sensoreG) == HIGH && digitalRead(sensoreW) == HIGH && millis() - tempo < tempoMax ){ // stato iniziale con entrambi i sensori diseccitati
passo = 0;
errore = false;
}
while (digitalRead(sensoreG) == LOW && digitalRead(sensoreW) == HIGH && millis() - tempo < tempoMax ){ // controlla l'esecuzione del primo passo della sequenza di attivazione in tempo utile
if (millis() - tempo > tempoMax){
errore = true;
}
else {
if (passo == 0 || passo == 1){
passo = 1;
}
else {
errore = true;
}
}
}
while (digitalRead(sensoreG) == LOW && digitalRead(sensoreW) == LOW && millis() - tempo < tempoMax ){ // controlla l'esecuzione del secondo passo della sequenza di attivazione in tempo utile
if (millis() - tempo > tempoMax){
errore = true;
}
else {
if (passo == 1 || passo == 2){
passo = 2;
}
else {
errore = true;
}
}
}
while (digitalRead(sensoreG) == HIGH && digitalRead(sensoreW) == LOW && millis() - tempo < tempoMax ){ // controlla l'esecuzione del terzo passo della sequenza di attivazione in tempo utile
if (millis() - tempo > tempoMax){
errore = true;
}
else {
if (passo == 2 || passo == 3){
passo = 3;
}
else {
errore = true;
}
}
}
if (passo == 3 && millis() - tempo < tempoMax && errore == false){ // attiva assistenza e accende led se la sequenza di attivazione è stata eseguta correttamente in tempo utile
digitalWrite(led, HIGH);
digitalWrite(potenziometro, HIGH);
//passo = 0;
}
else { // toglie assistanza e spegne led se sequenza non corretta o oltre tempo limite
digitalWrite(led,LOW);
digitalWrite(potenziometro, LOW);
}
}
... ottengo :
Imer
Inserito il - 11/09/2016 : 07:19:49 Prova con quello che hai scritto , tanto non rompi nulla. È un'altro modo di vedere il problema.
Ciao Imer
washer
Inserito il - 10/09/2016 : 23:22:40
Imer ha scritto:
Il software non mi è chiaro: i primi 2 if ...
A rileggermi neanche io mi capisco. Torno sugli stati che hai suggerito:
Inserito il - 10/09/2016 : 19:23:02 Pazienza perché , se non volevo aiutare non ti offrivo il supporto , se risolvi il problema aiuti anche me o altri, per me il forum è questo spirito di aiuto e collaborazione, ogni uno ci mette del suo e si va avanti. Il software non mi è chiaro i primi 2 if il sensorrW e sensorG allora tu confermi l'avvio quando sono tutte e due bassi e hai la costante revR = vera, se ruoti al contrario la metti falsa in modo che non può accettare la condizione di avvio.
Vediamo se mi è chiaro: sensorG è il primo che incontra, mette revR = vera si aspetta che tutte e due vanno bassi per caricare il timer e avviare il motore a questo punto sono in uscita sul sensorW che lo porto a falso e a questo punto attendo o il timer a 0 e spengo o di ripetere il ciclo.
Se giro i pedali al contrario attivo sensroW = falso quindi non posso attivare il motore.
cosi può andare ma non vedo dove usi while vedo solo dei if
L'unico dubbio ma penso che ne sei cosciente sono i 2 secondi, mi sembra troppo alto , quanti magneti ci sono ?
Se l'appetito vien mangiando io ci metterei anche la gestione freni e tensione minima di batteria
Ciao Imer
washer
Inserito il - 10/09/2016 : 18:24:44 Certo ne hai di pazienza ... ho usato "while" con significato capovolto, ... le fesserie sulle aggiunte di correnti ... Grazie per il supporto. Il sensore si comporta praticamente ON/OFF. Il tester è un ricordo di mio padre, e cerco di trattarlo con cura, ma sono contrario alle reliquie. Comunque è uno degli ultimi. Il codice seguente funziona al banco senza difetti evidenti. In settimana proverò ad affrontare le mille sfighette "tra il dire e il fare".
/*
PAS
Attiva l'assistenza, fornendo al potenziometro alimentazione 5V quando i pedali girano col verso corretto e sufficiente velocità.
Il circuito:
* sensore di Hall G collegato al pin 12
* sensore di Hall W collegato al pin 11
* resistori 5,7K collegati tra V+ e pin 11 e 12
* uscita V+ 5V dal pin 10 quando viene attivata l'assistenza.
* Accende il LED giallo sulla scheda, pin 13, quando viene attivata l'assistenza.
*
09.09.2016
by Washer
*/
// costanti:
const byte sensoreG = 11; // pin del sensore G
const byte sensoreW = 12; // pin del sensore W
const byte potenziometro = 10; // pin dell'uscita al potenziometro
const byte led = 13; // pin dell'uscita al LED
unsigned long tempoMax = 2000; // imposta a un tot secondi un intervallo di tempo
// variabili:
boolean revR = false; // variabile per controllare il senso di rotazione
unsigned long tempo = 0; // variabile per controllare i tempi di attivazione dei sensori
void setup() {
// inizializza i pin led e potenziometro come output:
pinMode(led, OUTPUT);
pinMode(potenziometro, OUTPUT);
// initializza i pin sensoreG e sensoreW come input:
pinMode(sensoreG, INPUT);
pinMode(sensoreW, INPUT);
digitalWrite(potenziometro, LOW);
digitalWrite(led, LOW);
}
void loop() {
// controlla l'eccitazione del sensoreG:
if (digitalRead(sensoreG) == LOW) {
revR = true;
}
// controlla l'eccitazione del sensoreW:
if (digitalRead(sensoreW) == LOW) {
revR = false;
}
// attende l'eccitazione di entrambi i sensori e revR true:
if (digitalRead(sensoreG) == LOW && digitalRead(sensoreW) == LOW && revR == true) {
// se in tempo utile attiva l'assistenza, accende led, resetta tempo:
if ( millis() - tempo < tempoMax) {
digitalWrite(potenziometro, HIGH);
digitalWrite(led, HIGH);
tempo = millis();
revR = false;
}
}
// se scade il tempo utile taglia l'assistenza, spegne led, resetta tempo:
if (millis() - tempo > tempoMax){
digitalWrite(potenziometro, LOW);
digitalWrite(led, LOW);
tempo = millis();
revR = false;
}
}
Imer
Inserito il - 10/09/2016 : 11:40:50 Ciao, non ho risposto prima perché è due giorni che non riuscivo a connettermi al forum. Ho dato un'occhiata ai datasheet dei sensori hall quelli che ho visto e a parte uno che bisogna alimentare a 28 V e ha uno OUT di 1 mA gli altri come corrente minima sono 10 mA sul pin di OUT, quindi penso che sei in sicurezza. L'unico dubbio è se quello che hai preso è lineare o sull'uscita c'è un trigger. Se è quello lineare se avvicini la calamita lentamente dovresti vedere l'uscita che varia in funzione della distanza del magnete dal sensore , se è quello con il trigger raggiunta una certa distanza scatta basso di colpo. Stupendo il tester ICE 680 R ne ho ancora 2 , ma li tengo nel museo Con il software ci son problemi ?
Ciao Imer
washer
Inserito il - 08/09/2016 : 21:46:31 Chiedermi scusa poi … ieri ho tirato tardi, preso dalla concitazione del gingillo nuovo ... Prima di affrontare il codice vorrei capire il sensore, purtroppo ormai doppio, avendo io resinato tutto insieme. Non si legge più niente, e nel negozio eBay era solo "Hall sensor" ...
La resistenza è messa così:
Senza, l’uscita del sensore è bassa ed erratica.
Ho stimato a “braccio” (diciamo), che la corrente che vi circola debba essere sensatamente inferiore di quella che passa nel sensore. Nel sensore ( in ciascun Hall) passano quattro o tre mA, a seconda che sia eccitato o meno, con un resistore 10K aggiungo un assorbimento di 0,5 mA. Con uno da 1K 5 mA ...
La situazione al momento è questa ( lo scarafaggio rosso è il sensore): l’analogico misura la corrente su V+ (che alimenta DUE sensori), e il digitale la tensione su OUT di UN sensore.
Il tutto sembra abbastanza “robusto”. Devo far diverso? Con quale criterio?
Forum Indipendente Biciclette Elettriche, Pieghevoli e Utility