Show Posts
|
|
Pages: 1 ... 4 5 [6] 7 8 ... 10
|
|
76
|
International / Hardware / Re: Arduino e interferenze??
|
on: October 31, 2012, 11:28:07 am
|
|
Ciao, io ho avuto e ho tuttora un problema simile: praticamente utilizzando arduino per regolare l'anticipo della scintilla in un motore 2 tempi mi è venuto in mente quale può essere il tuo problema. Si tratta delle scintille provocate dalle spazzole del motorino: seppur minime queste emettono segnale a frequenze molto elevate e la comunicazione seriale tramite usb è molto suscettibile e ancor di più arduino. I consigli che ti do sono 3: 1. prova a cambiare il cavo usb mettendone uno schermato: quelli con la treccia o calza che racchiude i fili. 2. prova a cambiare motorino usando un brushless 3. prova a chiudere arduino in una scatola metallica mettendo poi la scatola a massa dell'arduino: se non hai tale scatola prendi una scatola di cartone e rivestila di nastro d'alluminio e poi collega un filo a massa e al nastro che hai incollato. ovviamente devi comunque collegare arduino al pc con un cavo usb schermato.
Facci sapere
|
|
|
|
|
77
|
International / Software / Leggere e scrivere dati da arduino
|
on: October 04, 2012, 04:01:47 pm
|
|
Ciao regaz, vorrei un aiuto su come inviare dati (numeri) da un foglio excel tramite usb su arduino uno per poi memorizzarli nella eeprom, e viceversa leggerli dalla memoria per poi mandarli ad excel. Mi potete aiutare? Grazie
|
|
|
|
|
78
|
International / Hardware / Re: Condizionamento pick up magnetico
|
on: August 26, 2012, 07:14:57 am
|
|
Ciao ragazzi, avete ragione sulla presentazione dello schema che così è non standard, però ci tengo a precisare alcuni punti:
1. Lo schema ve l'ho fornito così perchè mi era più facile, ma non preoccupatevi dei collegamenti perchè è tutto fatto rispettando le solite regole di progettazione: ci sono i condensatori da 100nF sull'alimentazione, vicino al micro, vicino l'opamp, sui pin digitali dei tasti e dipswitch. 2. Ho dimenticato il collegamento a Vcc per l'opamp ma c'è sul pcb altrimenti non funzionerebbe nemmeno lui. 3. Il partitore r5-r4 serve per far lavorare l'opamp che è in open collector, niente di più, normalmente senza segnale in ingresso ci sono circa 5V in uscita all'opamp. 4. Ho seguito regole di progettazione e il pcb non è stato fatto a caso, quindi non vi dovete preoccupare di questo. Ho notato però che da quando ho inserito i condensatori da 100nF sui pin dei pulsanti e dipswitch da li sono sorti questi problemi. Sono problemi che si verificano facendo andare il circuito con la sua pila e non collegato al motore e senza segnale d'ingresso ( ma anche con segnale d'ingresso ovviamente): quindi non stiamo ad analizzare possibili disturbi che il motore può generare perchè ora il circuito lo sto provando in casa!
Ho notato un comportamento molto strano. Quando accendo il micro i pin rx e tx sono bassi (ho predisposto un connettore per poter programmare il micro). Questi pin sono collegati al connettore e a nient altro. Quando inizio a premere i pulsanti ripetutamente questi pin diventano alti, perchè?
Secondo me bisogna capire che cosa succede al micro quando premo ripetutamente i pulsanti. i pin digitali lavorano in sink o in source? Le cap da 100nF vengono scaricate a massa quando premo i pulsanti, possono comportare qualcosa?
Grazie per i suggerimenti, farò altre misure ma sono certo si questi capi saldi. Il problema riscontrato è davvero strano ma io sono sfigato quindi non è strano per me.
|
|
|
|
|
79
|
International / Hardware / Re: Condizionamento pick up magnetico
|
on: August 25, 2012, 02:40:55 pm
|
Per fortuna che ci sei tu che mi dai speranza  . Ecco lo schema attuale, il pin 2 e il pin 15 sono i due pulsanti che vado a premere, gli altri pin con solo i condensatori attaccati sono collegati ad dip switch da 4 tasti.
|
|
|
|
|
81
|
International / Hardware / Re: Condizionamento pick up magnetico
|
on: August 23, 2012, 12:41:10 pm
|
|
Il bello è che il micro su arduino uno non presenta questi problemi, infatti sto pensando di utilizzare proprio l'arduino e al diavolo il mio pcb...
Le variabili non assumono nessun valore quando pigio i pulsanti perchè metto la serial print nell'IF in cui non deve entrare e in cui all'interno viene cambiato il valore dei pin dei pulsanti. Quindi il codice funziona. Stesso modo se commento tutta la parte relativa ai pulsanti ho lo stesso i problemi ergo non è il codice. Ho tenuto sotto controllo la tensione di alimentazione dopo il 7805 ed è stabilissima, proverò ancora. Tagliando il dissipatore non si rovina, potrebbe scaldare di più ma improbabile dato che il circuito assorbe 33mA e la caduta di tensione sull'integrato è di 8.8-5=3.8V, infatti non scalda per niente.
il diodo se non ricordo male c'è, e se non ci fosse poco conta perchè si scarica sul micro, a meno che proprio ora non si sia danneggiato il 7805, verfico. A proposito dei pin digitali, sono in sink o in source current?
Curiosità, il 328p può andare a 20MHz oppure no?
|
|
|
|
|
82
|
International / Hardware / Re: Condizionamento pick up magnetico
|
on: August 23, 2012, 12:55:07 am
|
|
Ho fatto ulteriori prove. La configurazione del micro è: condensatori da 100nF sui pin dei pulsanti e resistenza da 1k su tali pin verso Vcc. Il problema persiste e non è di tipo software in quanto cercando di provocare lo stesso errore sull'arduino uno non salta fuori. Mi sono fatto un viaggio pazzesco, ma se fosse che quando chiudo gli switch e scarico quei condensatori verso massa la massa inizia a fare ground bouncing e il micro sclera? Oppure per lo stesso motivo, quando premo i pulsanti creo un fronte di discesa rapido che genera un disturbo che si accoppia con il quarzo del micro? il quarzo è stato messo il più vicino possibile al micro assieme ai due condensatori da 22pF.
Ormai non so più a cosa pensare, con l'oscilloscopio non si vede nulla, avete qualche idea su qualche misura che si può fare?
|
|
|
|
|
83
|
International / Hardware / Re: Condizionamento pick up magnetico
|
on: August 13, 2012, 03:46:13 am
|
|
Mi sembra di avere le basi sufficientemente adeguate sull'elettronica, non perchè sia un ingegnere elettronico ma perchè non si sta parlando di realizzare un amplificatore di potenza in classe D a qualche MHz di frequenza di oscillazione; si sta parlando di un "circuitino" alimentato a batteria che non fa altro che ritardare un segnale. Ho ricontrollato centinaia di volte lo schematico, ho fatto misure ovunque con l'oscilloscopio e non mi sembra il caso di venirmi a dire "non hai le basi per affrontare un progetto di elettronica". Per caso io vado a dire a chi non riesce a risolvere il mio problema: tu non hai le basi per risolverlo? Le mie risposte e ciò che scrivo sono dettate dal fatto che un problema del genere non lo avevo mai visto e forse prima di scriverlo qua su ho fatto moltissime prove. Prima avevo il problema di disturbi quando collegavo il sistema al motore perchè i disturbi a radio frequenza si accoppiavano sul segnale del pickup e disturbavano molto, quindi prima ho risolto questo. Poi ho provato a spingere questi pulsanti perchè li devo utilizzare e mi sono accorto che non vanno a motore acceso e a motore spento si. Dunque ripeto la mia domanda: ieri dalla prova definitiva a banco ho notato che commentando tutta la parte di codice relativa alle azioni eseguite una volta premuti i pulsanti ottengo lo stesso problema. Ergo: è un problema elettronico o di software? Elettronico come potrebbe essere? Di software non capisco come tali pulsanti possano influenzare il comportamento se sono "disabilitati".
ps: il 7809 è in configurazione generatore di corrente costante e serve solo per la carica della batteria.
|
|
|
|
|
84
|
International / Hardware / Re: Condizionamento pick up magnetico
|
on: August 12, 2012, 06:21:31 am
|
|
Ho capito cos'è e come si fa il debouncing, non l'ho fatto ma non è questo il punto. Il punto è che se io spingo 1000 volte consecutive il pulsante e il uP non deve in quel momento leggere quel pulsante il risultato è nullo. Potrei anche fare il debouncing ma perchè il micro fa una digitalread su quel pin anche se non lo deve fare?
|
|
|
|
|
86
|
International / Hardware / Re: Condizionamento pick up magnetico
|
on: August 12, 2012, 05:29:32 am
|
Andiamo per gradi: 1. I problemi di prima li ho risolti mettendo dei gran 100nF ovunque, ovvero, sull'ingresso del comparatore dove arriva il segnale di pick up ora c'è un R_L_C che lascia passare i segnali fino a 300Hz circa e tutto il resto viene attenuato per frequenze maggiori. Poi ho messo dei 100nF su tutti i piedini digitali che uso e qualche zener per limitare un pò gli spike. 2. io dichiaro tutte queste variabili prima del setup: #include <EEPROM.h> #include "FreqPeriodCounter.h" #include <avr/io.h> #include <avr/interrupt.h>
#define NEXT_RST 2 #define PUIN 3 #define PUOUT 4 #define ledRun 5 #define led1 6 #define led2 7 #define led3 8 #define SELF 9 #define SWITCH1 10 #define SWITCH2 11 #define SWITCH3 12 #define SWITCH4 13
boolean CONFIGURED=LOW; boolean writed=LOW; boolean STEP=LOW; boolean RUN=LOW; boolean CREA=LOW; volatile boolean val=HIGH; volatile boolean flag=LOW; boolean config=HIGH; boolean OK=HIGH; boolean prec=LOW; boolean s[4]; // stati degli switch int count_step=1; int step_rimasti; float alpha_max; float alpha_step; float alpha[6]={0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; float m[6]={0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; float q[6]={0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; float tick=0.5; int i=0; int k=0; int wait=1000; int wait_canc=4000; unsigned long last=0; int pulse_width=200; volatile unsigned long width=0; int delta_t; // in microsecondi int delta_t_step; int delta_t_opt[6]={0, 0, 0, 0, 0, 0}; int delta_t_tab[251]; int freq; int freq_soglia; int freq_step; int freq_max[6]={0, 0, 0, 0, 0, 0}; int RPM[6]; volatile int dt; volatile int NotRun=0; int stato_config[8]={0,0,0,0,0,0,0,0};
e nel setup: // initialize Timer1 cli(); // disable global interrupts TCCR1A = 0; // set entire TCCR1A register to 0 TCCR1B = 0; // same for TCCR1B // set compare match register to desired timer count: // turn on CTC mode: TCCR1B |= (1 << WGM12); TCCR1B &= ~(1 << WGM10); TCCR1B &= ~(1 << WGM11); // Set for prescaler 8: TCCR1B |= (1 << CS11); TCCR1B &= ~(1 << CS12); TCCR1B &= ~(1 << CS10); // enable timer compare interrupt: TIMSK1 |= (1 << OCIE1A); // enable global interrupts: sei();
3. Io uso un regolatore 7805 ben filtrato prima del uP, non c'è bisogno di altri filtri; infatti vi sto dicendo che mi succedono cose strane se lo provo a banco quindi in assenza di disturbi, ma mi metto a spingere velocemente i due pulsanti che ho collegato un al digital pin3 e uno a d.p. 9. Il bello come dicevo prima è che se spingo questi pulsanti ripetutamente e velocemente, anche quando il codice non dovrebbe nemmeno accorgersi di loro perchè c'è un IF che precede la loro lettura (e la sua condizione di entrata è FALSA), il micro inizia a fare cose strane tipo accende dei led che non dovrebbe, poi si pianta in un certo punto (che non si capisce come ci sia entrato). Ho paura che siano abilitati degli interrupt per questi pin e che lui vada ad eseguire qualcosa che non ho dichiarato, ma come? boh non ne ho idea. Aiutatemi voi. Grazie
|
|
|
|
|
87
|
International / Hardware / Re: Condizionamento pick up magnetico
|
on: August 11, 2012, 01:14:02 pm
|
|
All'inizio li disabilito tutti con cli(); e poi setto dei registri per il timer1 e poi sempre nel setup riabilito tutti con sei();
Che intendi con problemi relativi a Ram troppo piena? Non ne ho mai sentito parlare.
|
|
|
|
|
89
|
International / Hardware / Re: Condizionamento pick up magnetico
|
on: August 11, 2012, 11:29:46 am
|
|
Ciao a tutti, credo di aver risolto il problema dei disturbi per quanto riguarda il condizionamento del segnale del pick up. Ora però ho un ulteriore problema. Ho un pulsante collegato al pin 15 (digital pin 9, OC1A/PCINT1) del micro atmega328p e ho necessità di premerlo in determinati momenti a motore acceso. Dato che comunque i disturbi che arrivano possono influenzare questo pin ( e così è!) ho messo un 100nF tra il pin e massa. Il pin è normalmente alto tramite il pull up interno e quando premo il pulsante va basso. Quando arriva un disturbo che mi fa andar basso il pin ripetutamente senza il mio volere, il uP da di matto. Premesso che utilizzo il timer 1 per generare un ritardo, questo pin ha a che fare con tale timer? Per far delle prove ho escluso la parte di codice che usa questo pin e quindi non va a leggere il suo stato, ma se inizio a premerlo ripetutamente e velocemente (come se un disturbo arrivasse ripetutamente su quel pin) allora il uP inizia a fare delle cose che non dovrebbe dato che non vado a rilevare quel pin.
Qualcuno mi spiega il perchè? Grazie milleeeeeeeeeee
|
|
|
|
|
90
|
International / Hardware / Re: Condizionamento pick up magnetico
|
on: July 14, 2012, 04:42:49 am
|
Bisogna intendere cosa significa filtrare l'alimentazione...più di così non è che si può filtrare. Quel disturbo deriva dalla massa sicuramente. Ho visto che alcuni hanno progettato un delayer per il motore da vespa, che consiste nel mettere un filtro RC tra il filo rosso (segnale pick up) e il filo bianco (che loro dicono sia la massa); Io applico il mio circuito tra il filo rosso e il telaio, ovvero il ritorno per il segnale di pick up dato che questo è collegato a un capo proprio al telaio. Probabilmente il segnale di pick up va condizionato così: si prende il segnale tra il rosso (pick up) e il bianco, anche se il bianco non è il suo vero riferimento, e poi con il comparatore configurato in questo schema: http://www.simplecircuitdiagram.com/wp-content/uploads/2010/04/Detector-for-Magnetic-Transducer.gif si rileva il segnale differenziale del pick up e così il rumore di modo comune viene escluso. La massa del mio circuito poi la devo collegare per forza al telaio perchè altrimenti, quando mando il segnale alla bobina, (che essa ha proprio un filo collegato al telaio per il ritorno di corrente della scintilla) esso deve essere riferito al telaio. Qui mi sorge il dubbio quindi: anche il pick up è riferito al telaio, quindi poi il comparatore fa dei problemi?
|
|
|
|
|