Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Arduino Uno ili Mega brzina citanja i pisanja na a/d pinovima?

  • 12 odgovora
  • 5.676 pregleda

Najnovija ↓

Arduino Uno ili Mega brzina citanja i pisanja na a/d pinovima? 07.04.2015. u 10:06 · pre 140 meseci
izmenjeno 1 put, poslednji put manix 07.04.2015. u 12:16
  1. manix07.04.2015. u 12:16zapis iz teksta poruke
#1
Pozdrav,
trenutno koristim Uno u jednom projektu, a imam i mega... imam tri senzora, dva induktivna i jedan opticki... Induktini senzori odredjuju polozaj odredjenog klipa dole/gore i na osnovu toga i smer kretanja klipa. U gornjrm polozaju ocitavam vrednost sa optickog cenzora i nakon kretanja na dole ako je ispravna vrednost na optickom senzoru kretanje se nastavlja a ako nije relej iskljucuje masinu. Na optikom senzoru je promenljiv napon, u opsegu od 2-5v, koji nije konstantan i uslov, za nastavak rada, je da je napon na optickom senzoru manji od 3v.
Zbog takvih potrebe sve vreme merim i belezim najmanji napon na optickom senzoru i ukoliko zabelezim samo jedan impuls koji je manji od 3v to je ok a mogu imati recim 50 impulsa u toku merenja. Stvar je u tome da se sve to odvija jako brzo, recimo da je kretanje u jednom smeru oko 12ms... E sada se dogadja sledece, opticki senzor ne ispuni ulov za nastavak kretanja a relej se ukljuci nakon 1-4 sledeca pokreta. Na osmovu toga sam zakljucio da je problem u brzini kontrolera... senzori rade na 200Hz sto bi trebalo da znaci da nije problem u njima. Takodje da kazem da mi je opticki senzor na analognom pinu A0 a induktivni su na digitalnim pinovima... induktivni senzori su na 12v a u kontroler signal dolazi preko stabilizatora na 5v.

Da li neko moze da mi pomogne u vezi toga? Trazim nesto po netu ali ne mogu bas da skontam sta tu treba uraditi. Izgleda da je to moguce napraviti ali jos nisam skontao kako... :/
Re: Arduino Uno ili Mega brzina citanja i pisanja na a/d pinovima? 08.04.2015. u 13:26 · pre 140 meseci #4
Citat:
manix:
. E sada se dogadja sledece, opticki senzor ne ispuni ulov za nastavak kretanja a relej se ukljuci nakon 1-4 sledeca pokreta. Na osmovu toga sam zakljucio da je problem u brzini kontrolera...


Ja bih iz ovoga zakljucio da ili releji ili kontroler ili obadvoje nemaju dovoljnu brzinu.
Salu na stranu, 12ms je dosta vremena za kontroler, medjutim ako radis AD konverziju, pa jos ako ima neka zeznuta matematika sa realnim brojevima zna biti guravo.
Ja bih problem rijesio tako da stavim analogni komparater od 3 V i rijesim se AD konverzije.
Onda ostaje da se rijesi problem brzine releja-izvrsnih elemenata.
Re: Arduino Uno ili Mega brzina citanja i pisanja na a/d pinovima? 09.04.2015. u 21:13 · pre 140 meseci
izmenjeno 1 put, poslednji put manix 10.04.2015. u 17:20
  1. manix10.04.2015. u 17:20zapis iz teksta poruke
#5
Imam paralelno led diodu sa signalom za relej i relej reaguje istog trena kada i dioda , po specifikaciji on odradjuje <10ms tako da sam zbog toga skontao da je u pitanju mk.
Malo mi je problem sto ne mogu puno da eksperimentisem sa masinom jer u tom slucaju steti proizvodu... inace bi izmerio ucestalost merenja napona, koliko se secam da je to jako mala frekfencije, 4-5 merenja, jednom sam ispisivao podatke na serial.

@veselinovic
pa jedina matematika je provera najmanje voltaze sa senzora

evo i koda
Code:

int senOptic = A0;
int senDole  = 2;
int senGore  = 3;
int ledPin = 12;
int startPin = 10;

int senVolt= 1023;
int minVolt = 600;
int oldVolt= 600;

int putanja = 1;
int startStatus = 0;


void setup() {
  pinMode(senOptic,INPUT);
  pinMode(senDole, INPUT);
  pinMode(senGore, INPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(startPin, INPUT);
  digitalWrite(ledPin,HIGH);
  digitalWrite(startPin,LOW);
}

void loop() {
    if (digitalRead(startPin) == HIGH){
        startStatus = 1;
        digitalWrite(ledPin,LOW);
    }
    
    // PROVERA POLOZAJA
    if (startStatus == 1){
        // PROVERA POLOZAJA
        if (digitalRead(senGore) == HIGH){
            senVolt = analogRead(senOptic);
            if (minVolt > senVolt){
                minVolt = senVolt;
            }
            putanja = 1;
        }
    }

    if (digitalRead(senGore) == LOW && digitalRead(senDole)== LOW){
        if (putanja ==1){
            if (minVolt > 290){
                //ZAUSTAVI MASINU
                digitalWrite(ledPin,HIGH);
                startStatus =0;
            }
        }
    }   

    if (digitalRead(senDole) == HIGH){
        putanja = 0;
        minVolt= 600;
        oldVolt= 600; 
    }
}


@Zlatni_bg
Da li mi mozes reci nosto o tome podesavanju interaptova?
Re: Arduino Uno ili Mega brzina citanja i pisanja na a/d pinovima? 10.04.2015. u 17:33 · pre 140 meseci #6
Pronasao sam ovo

Code:

/*
  Analog Input with prescale change (thanks to jmknapp)
  http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1208715493/11
  Reading a 1 kHz sine wave, 0 to 5 volts
  Using analog 0
  Results stored in memory for highest speed
 */

#define FASTADC 1
// defines for setting and clearing register bits
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif

int value[100];   // variable to store the value coming from the sensor
int i=0;

void setup() 
{
 Serial.begin(9600) ;
 int i ;
  
#if FASTADC
  // set prescale to 16
  sbi(ADCSRA,ADPS2) ;
  cbi(ADCSRA,ADPS1) ;
  cbi(ADCSRA,ADPS0) ;
#endif
}

void loop() 
{ 
 for (i=0;i<100;i++)
{
  value[i]=analogRead(0);
} 
for (i=0;i<100;i++)
{
  Serial.println(value[i]);
} 
Serial.println();
Serial.println();
Serial.println();
delay(5000);
  
}
 


da li je neko probao ovo? Ja cu biti u prilici da ovo isprobam za par dana. Da li je neko imao iskustva sa ovim?
Ako sam ja dobro razumeo ovo bi trebalo da resi moj problem.

P.S. Moj kod iz prosle poruke moze jos malo da se optimizuje :)
Re: Arduino Uno ili Mega brzina citanja i pisanja na a/d pinovima? 10.04.2015. u 18:33 · pre 140 meseci #7
Citat:
manix:
... induktivni senzori su na 12v a u kontroler signal dolazi preko stabilizatora na 5v.


Kakav je 'stabilizator' u pitanju? Ako je to neki 3 pinski - to ne biti dobro... kad bih se ja
pitao, na izlaz iz induktivca isao bi otpornik pa zenerica (4V7 ili 5V1) prema masi.
Potpis
73 de YU1OL
Re: Arduino Uno ili Mega brzina citanja i pisanja na a/d pinovima? 11.04.2015. u 07:27 · pre 140 meseci #9
Citat:
manix: da jeste tropinski 7805...
Moze li to da stvara problem?


:) Verovatno, a ako na ulazima i izlazima stabilizatora imas i pogoleme kondenzatore - ondaK dibiduz ne valja!

Ili stavi otpornik pa zenericu, ili otpornicki razdelnik i vozi Misko. Ovako kako jeste sada, da pretpostavimo
da ce se ti kondenzatori brzo napuniti (ako nisu mikrofaradi u pitanju) i da nece biti kasnjenja, ali kada se stanje
promeni iz jedinice u nulu... hmmm... ulazni otpor mikrokontrolera je vrlo veliki i promena stanja ce trajati celi letnji
dan do podne :(

Pozdrav,
Potpis
73 de YU1OL
Re: Arduino Uno ili Mega brzina citanja i pisanja na a/d pinovima? 11.04.2015. u 16:31 · pre 140 meseci #10
izlaz sa induktivnog preko v. divider-a (2 otpornika) + zenerka za svaki slucaj
izlaz sa optickog na komparator pa na digitalni pin (nema potrebe da ti radis AD konverziju ako te samo zanima da li je ispod/iznad nekog Vth)
i mozes da teras to jedno 100x brze nego do sada :D
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Arduino Uno ili Mega brzina citanja i pisanja na a/d pinovima? 14.04.2015. u 21:15 · pre 140 meseci #12
Za to tvoje osnovno pitanje ćeš morati da pročitaš datashet od upotrebljenog kontrolera i da pretreseš biblioteku da bi bio u stanju da proceniš brzinu očitavanja. Uz sve to, ne zaboravi da tvoj kontroler treba da radi još nešto osim očitavanja ADC i promene stanja IO pinova.
Potpis
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
Re: Arduino Uno ili Mega brzina citanja i pisanja na a/d pinovima? 15.04.2015. u 10:16 · pre 140 meseci #13
Citat:
induktivni senzori su na 12v a u kontroler signal dolazi preko stabilizatora na 5v.

Shto se tice korishcenja induktivnog senzora ja bi tu koristio opto elemenat. +12V, pa otpornik za ogranicavanje struje kroz senzor, opto elemenat pa senzor, a na izlazu opto elementa normalno uz nekoliko dodatnih elemenata dobio pogodan siguran signal za ulaz u PIC, tako da ti je to reshen problem shto se tice ocitavanja induktivnog senzora.
Shto se tice ocitavanja opto senzora apsolutno podrzavam Bogdanov predlog o komparatoru tako da nema potrebe od A/D konverzije.
Potpis
macedo
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme