daniels Postat Octombrie 7 Autor Partajează Postat Octombrie 7 Am incercat cu un generator PVM si functioneaza corect. La 1Hz, ca sa vad ce se intampla, numara un impuls atunci cand se stinge ledul pe arduino, iar butoanele functioneaza. Functioneaza corect si cu un modul cu senzor magnetic reed. Am observat ca pe acest modul unul din ledurile rosii sta stins si se aprinde cand apropii magnetul. La senzorul hall ledul sta aprins tot timpul, se stinge cand apropii magnetul si atunci cand e stins numara mii de impulsuri. Nu pot stinge acel led din potentiometrul de pe placa. Am alimentat in paralel cei 2 senzori. Link spre comentariu
roadrunner Postat Octombrie 7 Partajează Postat Octombrie 7 (editat) asta insemana ca atunci cand e stins probabil nu e stabil nivelul (sau nivelul nu e cat trebuie) -masoara cu voltmetrul nivelele iesirii din senzor cand e stins si aprins. Alta posibila problema e ca ai Pull UP si in software (in AVR) si extern (in schemma ta) si posibil e si la iesirea comparatorului pe placa de senzor. Exista posibilitatea ca din cauza la prea mult pull-up iesirea comparatorului sa nu poata trage in low semnalul ala. Masoara nivele de high si low cu un voltmetru. RR Editat Octombrie 7 de roadrunner Link spre comentariu
validae Postat Octombrie 7 Partajează Postat Octombrie 7 Cred că era mai ușor și sigur să îți faci singur partea de numărare, decât să folosești modulele alea chinezești, care pot avea uneori probleme din construcție. O fotodiodă, o rezistență sau potențiometru și eventual un tranzistor nu erau greu de asamblat...câteodată mai complicat nu înseamnă și mai bun, ci mai multe posibilități de defect. La varianta cu Reed e și mai simplu de făcut. Link spre comentariu
roadrunner Postat Octombrie 7 Partajează Postat Octombrie 7 sau un sezor hall cu iesire digitala ca-s "ieftini ca braga". RR 1 Link spre comentariu
nico_2010 Postat Octombrie 7 Partajează Postat Octombrie 7 De aici: "https://circuitdigest.com/microcontroller-projects/interfacing-hall-effect-sensor-module-with-arduino" "How to test the Hall effect sensor module? Testing this module is pretty simple. Connect the input power to VCC and GND. Adjust the trim-pot until the status/DO LED is just turned ON, without any magnetic materials near the sensor. Then simply place a magnet near the sensor and if the LED turns OFF when the magnet is near the sensor, then the module is working fine." Acum 4 ore, daniels a spus: La senzorul hall ledul sta aprins tot timpul, se stinge cand apropii magnetul si atunci cand e stins numara mii de impulsuri Este comportament normal ... pana la numararea a mii de impulsuri. Si asta pentru ca intreruperile pe pinul D2 sunt pe front crescator. Schimba asta: attachInterrupt(0, numarare, RISING); cu asta: attachInterrupt(0, numarare, FALLING); Si vezi care este comportamentul intregului montaj. Link spre comentariu
roadrunner Postat Octombrie 7 Partajează Postat Octombrie 7 (editat) Acum 20 minute, nico_2010 a spus: Este comportament normal ... pana la numararea a mii de impulsuri. Si asta pentru ca intreruperile pe pinul D2 sunt pe front crescator. nu e corect ce spui, indiferent daca intreruperea e FALLING sau RISING cand semnalul e stabil LOW sau stabil HIGH numaratorul nu trebuie sa numere. Trebuie sa numere numai la schimbare starii din LOW in HIGH (daca e RISING) si din HIGH in LOW daca e falling. La problema descrisa de OP schimbarea din RISING in FALLING nu o sa sa-l ajute cu nimic si nici nu o sa faca nici o diferenta vizibila in cazul prezentat. RR Editat Octombrie 7 de roadrunner Link spre comentariu
nico_2010 Postat Octombrie 7 Partajează Postat Octombrie 7 Acum 10 minute, roadrunner a spus: nu e corect ce spui, indiferent daca FALLING sau RISING cand semnalul e stabil LOW sau stabil HIGH numaratorul nu trebuie sa numere. Eu vorbeam de modul de functionare al LED-ului montat pe senzor. Este evident ca in logica normala a modului in care a fost contruit modulul, iesirea este activa pe LOW, deci si intreruperea trebuie sa fie pe front cazator. Ce se intampla insa atunci cand iesirea este HIGH, in absenta unui osciloscop pot face doar presupuneri (cel mai probabil semnale parazite de amplitudine mare). De ce? Habar nu am. Link spre comentariu
roadrunner Postat Octombrie 7 Partajează Postat Octombrie 7 (editat) Acum 25 minute, nico_2010 a spus: Eu vorbeam de modul de functionare al LED-ului montat pe senzor. i-ai sugerat OP-ului sa schimbe tipul intreperii, il pui pe o pista gresita, asta era rostul postarii mele. Indiferent cum e LED-ul pe placa aia (pe care o banuiesc ca nu merge corect, sau nu e conectata corect) - OP a confirmat ca numaratorul functioneaza cu semnal extern (altul decat de la placa aia) deci codul e corect. Modificand codeul nu o sa-l ajute sa repare placuta aia mica (care e il tine pe el in loc de fapt) - eu supectez ca iesirea comparatorului nu poate trege corect in LOW semnalul de iesire. (eu as reduce regla pragul comparatorului la exact jumatatea intre 2.5V si 5V, si as reduce pullup-ul) Sau senzorul ala hall e praf si nu poti vedea pe led care pare aprins dar e posibil sa fie impulsuri scurte (noise) care nu le vede pe led dar le prinde intreperea aia fata probleme. Eu as elemina prostia aia de placa din start. RR Editat Octombrie 7 de roadrunner Link spre comentariu
mihaiaurul Postat Octombrie 7 Partajează Postat Octombrie 7 Pentru a vedea dacă nu cumva operationalul din modul este defect, cred ca ar merge testat daca senzorul functioneaza ok. Adică să conectezi pinul analogic A0 al modulului la o intrare analogica de la Arduino și să afisezi in loop() Serial.println(analogRead(A0)); Link spre comentariu
nico_2010 Postat Octombrie 7 Partajează Postat Octombrie 7 Da, este o sugestie corecta, avand in vedere modul in care functioneaza senzorul. Am mai spus, nu pot face decat presupuneri, care pot fi corecte sau gresite, atata timp cat nu am un produs identic/aproape identic pe masa de lucru ca sa verific sau sa clarific aberatiile de functionare, iar presupunerile astea l-ar putea ducela fel de usor pe piste gresite pe OP. Link spre comentariu
roadrunner Postat Octombrie 7 Partajează Postat Octombrie 7 (editat) Acum 10 minute, mihaiaurul a spus: Adică să conectezi pinul analogic A0 al modulului la o intrare analogica de la Arduino și să afisezi in loop() Serial.println(analogRead(A0)); daca sunt impulsri scurte (noise) si e clar ca sunt ca altfel nu ar numara intrerupere aia, nu le vede cu ADC-ul de pe AVR. Cred ca decizia e mai degaraba ce vre sa faca, sa repare (debug) placuta aia sau sa faca un numarator fara ea. RR Editat Octombrie 7 de roadrunner Link spre comentariu
mihaiaurul Postat Octombrie 7 Partajează Postat Octombrie 7 Sunt curios ce valori analogice trimite senzorul. Link spre comentariu
roadrunner Postat Octombrie 7 Partajează Postat Octombrie 7 (editat) Acum 12 minute, mihaiaurul a spus: Sunt curios ce valori analogice trimite senzorul. mda, cred ca e o componenta "originala" hall senzorul ala. RR Editat Octombrie 7 de roadrunner Link spre comentariu
daniels Postat Octombrie 7 Autor Partajează Postat Octombrie 7 (editat) Un test dupa codul const int ledPin = 13;//the led attach to pin13 int sensorPin = A0; // select the input pin for the potentiometer int digitalPin=2; //D0 attach to pin2 int sensorValue = 0;// variable to store the value coming from A0 boolean digitalValue=0;// variable to store the value coming from pin2 void setup() { pinMode(digitalPin,INPUT);//set the state of D0 as INPUT pinMode(ledPin,OUTPUT);//set the state of pin13 as OUTPUT Serial.begin(9600); // initialize serial communications at 9600 bps } void loop() { sensorValue = analogRead(sensorPin); //read the value of A0 digitalValue=digitalRead(digitalPin); //read the value of D0 Serial.print("Sensor Value "); // print label to serial monitor Serial.println(sensorValue); //print the value of A0 Serial.print("Digital Value "); // print label to serial monitor Serial.println(digitalValue); //print the value of D0 in the serial if( digitalValue==HIGH )//if the value of D0 is HIGH { digitalWrite(ledPin,LOW);//turn off the led } if( digitalValue==LOW)//else { digitalWrite(ledPin,HIGH);//turn on the led } delay(1000);//delay 200ms } zona cu linie rosie e cu magnetul in apropiere, led stins Editat Octombrie 7 de daniels Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum