简易磁悬浮
仅带有ESP32Pico M5Stack“ ATOM LITE / MATRIX”的简易磁悬浮项目,通过一种经过改造的简单5V继电器和一个霍尔传感器来实现。
材料准备:
[*] ESP32Pico开发板,比如ATOM LITE或 ATOM MATRIX
[*]一个改造的5V继电器
[*]一个霍尔传感器比如 A1302/A1308.
[*]一个木制圆形框架
以前制作磁悬浮使用的都是模拟比较器,比如
现在使用M5Stack的ESP32 SoC模块代替模拟比较器。 ATOM LITE或ATOM MATRIX都非常小(24mm * 24mm * 10mm或15mm),但是功能却丝毫不逊色,特别是内置了非常快速的12Bit-ADC,使用起来很方便。
霍尔传感器A1302现在使用3V3操作,以便电平适合ESP32 ADC。虽然这有点低于datasheet里给出的电压规范,但效果非常好。
此外,采用改造的5V继电器作为电磁铁,这里详细介绍了继电器的改造。它可以直接由3V3从ESP32控制。
轻量级的ARDUINO IDE程序确保了ESP32的ADC行为类似于LM311模拟比较器——包括磁滞,它的控制非常稳定。以下是非常简单的编程,一旦您实验性地调试出了触发器变量的正确参数,就可以很好地工作了。这个值很大程度上取决于磁铁和有效载荷重量,因为只有几毫米的范围内,电磁铁可以控制磁性物体的悬浮高度。
注意:5V电源的质量非常重要。一开始,只要我使用笔记本电脑的USB口提供5V电源,飞行高度的稳定性就有问题。这种供电太不稳定,太不干净了。只有当我把USB集线器和稳压电源连接在一起时,它才工作得很好。
/**************************************
Magnetic Levitation object:
Lets a LEGO man, glued together with a neobodymium magnet, float under a modified 5V relay
- SoC: ESP32, very good: M5Stack's ATOM LITE or ATOM MATRIX
- Electromagnet:Modified 5V-Relais HW-482 with 3V3/5V transistor input
- Sensor: HALL-sensor A1302 or A1308
***************************************/
// int TRIGGER = 2740; // Triggerlevel is set to a level where weight of payload is equal to the force between magnet and electromagnet
int TRIGGER = 2740; // good for payload = 2 Neobdym-Magnetsand a LEGO-Man
int HYST = 35; // Hysterese for trigger level
int HALL_PIN = 33; // analog Signal from HALL-sensor at GPIO33
int HALL_VAL = 0; //
int RELAIS_PIN= 23; // GPIO23 to drive the transistor input of the modified 5V-relaisthat is used as electromagnet
int X = 0; //
void setup(){
Serial.begin(115200);
pinMode(RELAIS_PIN, OUTPUT);
Serial.print("Magnetic Levitation: START " );
}
void loop(){
HALL_VAL =analogRead(HALL_PIN); //read HALL-Sensor with default 0-3.9V input >> 12bit
if (HALL_VAL < (TRIGGER + X) ){
digitalWrite(RELAIS_PIN, HIGH); // lift the payload
X = HYST;
}
else{
digitalWrite(RELAIS_PIN, LOW); // drop the payload
X = 0 - HYST;
}
// no delay is best
//delay (1);
}
这个非常赞,感谢分享
页:
[1]