查看: 2260|回复: 1

简易磁悬浮

[复制链接]

该用户从未签到

发表于 2020-7-6 10:04 | 显示全部楼层 |阅读模式

     仅带有ESP32Pico M5Stack“ ATOM LITE / MATRIX”的简易磁悬浮项目,通过一种经过改造的简单5V继电器和一个霍尔传感器来实现。
_ShHV5r0NTV.jpeg
     材料准备:
  • ESP32Pico开发板,比如ATOM LITE或 ATOM MATRIX
  • 一个改造的5V继电器
  • 一个霍尔传感器比如 A1302/A1308.
  • 一个木制圆形框架
以前制作磁悬浮使用的都是模拟比较器,比如
img_6954.jpg levitation_schematic.png
现在使用M5Stack的ESP32 SoC模块代替模拟比较器。 ATOM LITE或ATOM MATRIX都非常小(24mm * 24mm * 10mm或15mm),但是功能却丝毫不逊色,特别是内置了非常快速的12Bit-ADC,使用起来很方便。

霍尔传感器A1302现在使用3V3操作,以便电平适合ESP32 ADC。虽然这有点低于datasheet里给出的电压规范,但效果非常好。
此外,采用改造的5V继电器作为电磁铁,这里详细介绍了继电器的改造。它可以直接由3V3从ESP32控制。
1865be80-49d6-457c-9c6e-232ee3bd916f.jpeg ce5d8d41-5428-400c-abde-fc85efadcd02.jpeg d0ca4775-a3fb-4d76-b1b0-2cc74995b93f.jpeg 0af40956-c2e3-4c4f-a6b0-2e8da653e366.jpeg 66cb0ecb-8ad3-4695-937f-e51f51033ec0.jpeg
轻量级的ARDUINO IDE程序确保了ESP32的ADC行为类似于LM311模拟比较器——包括磁滞,它的控制非常稳定。以下是非常简单的编程,一旦您实验性地调试出了触发器变量的正确参数,就可以很好地工作了。这个值很大程度上取决于磁铁和有效载荷重量,因为只有几毫米的范围内,电磁铁可以控制磁性物体的悬浮高度。
注意:5V电源的质量非常重要。一开始,只要我使用笔记本电脑的USB口提供5V电源,飞行高度的稳定性就有问题。这种供电太不稳定,太不干净了。只有当我把USB集线器和稳压电源连接在一起时,它才工作得很好。
levitation_digital_schematic_HqAwugfgPv (1).png
  1. /**************************************
  2. Magnetic Levitation object:
  3. Lets a LEGO man, glued together with a neobodymium magnet, float under a modified 5V relay
  4. - SoC:            ESP32, very good: M5Stack's ATOM LITE or ATOM MATRIX
  5. - Electromagnet:  Modified 5V-Relais HW-482 with 3V3/5V transistor input
  6. - Sensor:         HALL-sensor A1302 or A1308
  7. ***************************************/
  8. // int TRIGGER     = 2740; // Triggerlevel is set to a level where weight of payload is equal to the force between magnet and electromagnet  
  9. int TRIGGER     = 2740; // good for payload = 2 Neobdym-Magnets  and a LEGO-Man  
  10. int HYST        = 35;   // Hysterese for trigger level

  11. int HALL_PIN    = 33;   // analog Signal from HALL-sensor at GPIO33
  12. int HALL_VAL    = 0;    //
  13. int RELAIS_PIN  = 23;   // GPIO23 to drive the transistor input of the modified 5V-relais  that is used as electromagnet
  14. int X           = 0;    //


  15. void setup(){
  16.   Serial.begin(115200);
  17.   pinMode(RELAIS_PIN, OUTPUT);
  18.   Serial.print("Magnetic Levitation:   START " );
  19. }


  20. void loop(){
  21.   HALL_VAL =analogRead(HALL_PIN);       //read HALL-Sensor with default 0-3.9V input >> 12bit

  22.   if (HALL_VAL < (TRIGGER + X) ){
  23.     digitalWrite(RELAIS_PIN, HIGH);     // lift the payload
  24.     X = HYST;
  25.   }
  26.   else{
  27.     digitalWrite(RELAIS_PIN, LOW);      // drop the payload
  28.     X = 0 - HYST;
  29.   }
  30. // no delay is best
  31. //  delay (1);     
  32. }
复制代码



该用户从未签到

发表于 2020-7-6 10:23 | 显示全部楼层
这个非常赞,感谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

arduino程序设计基础 blinker物联网解决方案

热门推荐

【教程】pico+hx711电子秤
【教程】pico+hx711电子秤
pico+hx711电子秤 【前言】 我做过多款电子秤,这次移植到pico上
ESP8266+Onenet平台远程数据传输和控制
ESP8266+Onenet平台远程数
这是我的第一个diy,主要功能实现了onenet云平台温湿度数据的传输和远程控制LED灯平台
【Arduino】108种传感器模块系列实验(48)---三轴ADXL345模块
【Arduino】108种传感器模
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
ps2遥控小车——uno实现
ps2遥控小车——uno实现
前几天在阁楼发现了好久以前3d打印,激光切割的底盘,于是决定做这个东西 正好手上又
震惊!OLED菜单竟只用10行代码就可以完成到完美!!!
震惊!OLED菜单竟只用10行
震惊!OLED菜单竟只用10行代码就可
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表