Hallova sonda

Odpovědět
Queb
Příspěvky: 6
Registrován: 26 bře 2019, 21:20
Reputation: 0

Hallova sonda

Příspěvek od Queb » 05 kvě 2019, 19:00

Zdravím, snažím se připojit arduino a Hallovu sondu(https://www.gme.cz/data/attachments/dsh.533-442.1.pdf). Problém mám v tom, že sonda detekuje magnet cca v 1/3 případů. Proto bych se chtěl zeptat, jestli je nějaká možnost, jak měření zpřesnit.

Kód: Vybrat vše

const int hallSensor = 2;

void setup() {
  Serial.begin(115200);
  pinMode(hallSensor,INPUT);
  digitalWrite(hallSensor,HIGH);
  
}

void loop() {
  if(digitalRead(hallSensor)== LOW){
    Serial.println("ON");
  }else{
    Serial.println("OFF");
  }
  delay(100);
}

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Hallova sonda

Příspěvek od jankop » 05 kvě 2019, 20:02

Nezmiňuješ se, jak rychle potřebuješ magnet detekovat, ani nevím, jestli máš senzor správně zapojený.
V každém případě tvůj program nemůže dost dobře fungovat, protože většinu času je blokován příkazem delay(). Vhodné by bylo použít přerušení.
Netuším, k čemu to má sloužit, ale na vyzkoušení třeba velmi jednoduše bez přerušení takhle:

Kód: Vybrat vše

const int hallSensor = 2;

void setup() {
  Serial.begin(115200);
  pinMode(hallSensor, INPUT);
  digitalWrite(hallSensor, HIGH);
  Serial.println("Start");
}

void loop() {
  if (digitalRead(hallSensor) == LOW) {
    Serial.println("ON");
    Serial.flush ();
  } else {
    Serial.println("OFF");
    Serial.flush ();
  }
}
Tenhle prográmek čte senzor ASAP.

Queb
Příspěvky: 6
Registrován: 26 bře 2019, 21:20
Reputation: 0

Re: Hallova sonda

Příspěvek od Queb » 06 kvě 2019, 23:38

Senzor je zapojený takto
01.PNG
a chtěl bych měřit počet otáček za minutu kolečka pro výpočet rychlosti.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Hallova sonda

Příspěvek od pavel1tu » 07 kvě 2019, 07:13

Tuto sondu co jsi použil neznám,
nevím jak velké otáčky chceš snímat,
řešil jsem toto (také nefunkci) u měření otáček u amarérské "kaplanky" (turbíny) na Sázavě,
na 5V sonda dost špatně reagovala při vyšších otáčkách - podle osciloskopu + dost velké rušení na těch 5V.

po předělání na 24V + oddělení optočlenem + stíněný kabel (na místě) - se to hodně zlepšilo - funguje už rok a něco :-)

PS: už na stole to při 5V nad 40Hz docela nestíhalo.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Hallova sonda

Příspěvek od jankop » 07 kvě 2019, 07:27

V prvé řadě bys měl s ohledem na napájení sondy použít 5V Arduino a za druhé je potřeba dát na výstup sondy externí pullup rezistor cca 4K7.
Pak vyzkoušej

Kód: Vybrat vše

const int hallSensor = 2;
bool FlagMag = false;

void setup() {
  Serial.begin(115200);
  pinMode(hallSensor, INPUT_PULLUP);
  Serial.println("Start");
}

void loop() {
  if (digitalRead(hallSensor) == LOW && !FlagMag) {
    Serial.println("ON");
    //Serial.flush ();
    FlagMag = true;
  }
  if (digitalRead(hallSensor) == HIGH && FlagMag) {
    Serial.println("OFF");
    //Serial.flush ();
    FlagMag = false;
  }
}
a můžeme se bavit o dalším, když ovšem ještě zmíníš, o jaké otáčky se řádově jedná.

Queb
Příspěvky: 6
Registrován: 26 bře 2019, 21:20
Reputation: 0

Re: Hallova sonda

Příspěvek od Queb » 07 kvě 2019, 12:59

Otáčky počítám, že se nedostanou nad 2 tisíce. Sonda je napájená přes 5V a myslel jsem, že by stačilo použít interní rezistor arduina.

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Hallova sonda

Příspěvek od jankop » 07 kvě 2019, 16:47

Interní PullUp rezistor Arduina je o řád větší než doporučený výrobcem pro Hall sondu.

Thalorn
Příspěvky: 3
Registrován: 21 bře 2019, 21:39
Reputation: 0

Re: Hallova sonda

Příspěvek od Thalorn » 15 kvě 2019, 19:16

Ahoj, mám také problém s Hallovo sondou, chci rozsvítit diodu vždy, když přiblížím magnet a po oddálení by měla zhasnout. Dioda se mi rozsvítí, ale aby zhasla, musím magnet otočit a přiblížit se druhým pólem. Senzor používám TLE4935L s rezistorem 4K7 a arduino je mega2560.

Kód: Vybrat vše

const byte ledPin = 13;
const byte hePin = 2;
volatile byte stav = LOW;


void setup() {
 pinMode(ledPin, OUTPUT);
 pinMode(hePin, INPUT);
 attachInterrupt(digitalPinToInterrupt(hePin),blik,CHANGE);
}

void loop() {
  digitalWrite(ledPin, stav);
  delay(1);

}
void blik (){
  stav = !stav;
}

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Hallova sonda

Příspěvek od jankop » 15 kvě 2019, 19:42

Máš bipolární typ Hallovy sondy. Jednou polaritou mag. pole sepne, druhou polaritou mag. pole vypne. S tím programově nelze nic dělat.
Jedině u ní použít malý pomocný magnet, který by ji vypínal.
Kup si tuhle, ta je unipolární
https://www.gme.cz/tle4905l

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 6 hostů