En aquest experiment, aprendrem a usar el mòdul de sensor de corredor lineal (KY024).
El Mòdul Sensor magnètic lineal KY024 pot detectar la presència d’un camp magnètic prop del sensor. Variables com la intensitat del camp, la polaritat i la posició de l’imant en relació amb el sensor afectaran el punt en el qual l’eixida ‘DO’ canvia a un nivell alt (és a dir, alt actiu). La sensibilitat del circuit es pot ajustar amb un potenciòmetre.
Un senyal d’eixida analògica del sensor està disponible en el pin ‘AO’.
Imatge | Descripció |
---|---|
Arduino Uno o equivalent. | |
Cables de connexió | |
Mòdul sensor magnètic lineal KY-024 |
Especificacions
Tensió d’eixida de l’efecte Hall
Mecanismes de detecció
Unipolar: Només un pol sud operarà el sensor. El sensor s’encén amb el pol sud (+) i s’apaga quan es lleva el pol sud.
Bipolar: l’eixida del sensor depén dels pols. Un pol sud (+) està dissenyat per a activar el sensor; un pol nord (-) està dissenyat per a desactivar-se. És possible que el sensor s’apague i encara estiga dins d’un nivell de Gauss positiu.
Enganxament: Les especificacions són més estrictes en l’enganxament. A vegades està dissenyat per a assegurar-se que quan es lleva el pol sud (+) del sensor, romandrà encés fins que veja el pol oposat (-).
Omnipolar: El sensor està dissenyat per a operar amb radiomètric lineal: l’eixida és proporcional a la intensitat del camp magnètic. El rang de sensibilitat d’eixida és de 2,5 a 3,75 mV per unitat de Gauss.
Codi ARD24a – Eixida analogica
/*
* Projecte nº: ARD024a
* Data: 11.11.2021
* Descripcio: Modul sensor magnetic lineal
* Nota: Eixida analogica
*
*/
int sensorPin = A0;
int ledPin = 13;
int sensorValue = 0;
void setup()
{
pinMode(ledPin,OUTPUT);
Serial.begin(9600);
}
void loop()
{
sensorValue = analogRead(sensorPin);
digitalWrite(ledPin, HIGH);
delay(sensorValue);
digitalWrite(ledPin, LOW);
delay(sensorValue);
Serial.println(sensorValue, DEC);
}
Exemple de gràfica
Codi ARD24b – Eixida digitals
/*
* Projecte nº: ARD024b
* Data: 11.11.2021
* Descripcio: Modul sensor magnetic lineal
* Nota: eixida digital
*
*/
int Led=13;
int buttonpin=3;
int val;
void setup()
{
pinMode(Led,OUTPUT);
pinMode(buttonpin,INPUT);
}
void loop()
{
val=digitalRead(buttonpin);
if(val==HIGH)
{
digitalWrite(Led,HIGH);
}
else
{
digitalWrite(Led,LOW);
}
}