Hallova sonda

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Odpovědět
Queb
Příspěvky: 4
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: 537
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: 4
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.

pavel1tu
Příspěvky: 752
Registrován: 26 říj 2017, 08:28
Reputation: 1
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
http://pavel1tu.8u.cz/

jankop
Příspěvky: 537
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: 4
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: 537
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: 2
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: 537
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 1 host