Arduino 操控 12v 电压控制电磁铁 (线性振动马达?

本文介绍了如何使用Arduino和L298N驱动器来制作简易线性震动马达。通过控制电磁铁的供电方向变化,实现振动效果。程序中利用PWM调制改变吸力,并通过电流表监测电流。警告:由于螺线管通电时电流较大,不建议使用USB供电,避免设备损坏。同时注意控制通电时间以防过热。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在此记录一下制作过程,以作日后参考


效果:

线性震动马达?


大概思路:

通过L298N ,用外接12v电源给电磁铁进行12v供电,给arduino进行5v供电

一个电磁铁的供电方向保持不变,另一个快速变化,就能实现线性振动马达的效果。


制作过程


接线


L298N

  • 通道A使能 —— ~10 (pwm调整输出电压 (要拔掉跳线帽
  • IN1 —— 5
  • IN2 —— 6
  • GND —— 接地
  • 12v 供电 —— 12v电源正极
  • 5v 供电 —— arduino 的 5v‘
  • 输出A接到直流电机上

Arduion:

  • GND —— 和L298N 共地

    (其他的都连到L298N上了)

螺线管A

串联在12v电源正极和L298N的12v供电之间
保持供电方向不变

螺线管B

和电流表一起串联到输出A上
电流表用与监视电流大小
(电流表要放到10A档上,我的实验中电流大概1~2 A

在这里插入图片描述

整体图
在这里插入图片描述

在这里插入图片描述

程序

给螺线管B正向供电时,其吸引螺线管A
反向供电时,排斥螺线管B

int input1 = 5; // 定义uno的pin 5 向 input1 输出 
int input2 = 6; // 定义uno的pin 6 向 input2 输出
int enA = 10; // 定义uno的pin 10 向 输出A使能端输出
 
void setup() {
pinMode(input1,OUTPUT);
pinMode(input2,OUTPUT);
pinMode(enA,OUTPUT);
}
 
void loop() {
  //吸引
  digitalWrite(input1,HIGH); //给高电平
  digitalWrite(input2,LOW);  //给低电平 

  analogWrite(enA,255); // 0~255 越大吸力越强
  delay(50); //振动频率 数值越小,振动越快

  //排斥
  digitalWrite(input1,LOW); //给低电平
  digitalWrite(input2,HIGH);  //给高电平
  analogWrite(enA,255);
  delay(50);
  
  
}

结果

把螺线管B放到螺线管A上就可以看到效果啦。。。


注意

  • 因为螺线管本质还是导线,所以电阻很小。通电时电路中会产生很大的电流。
    所以不要直接用电脑的usb口供电,可能会烧坏主板
  • 螺线管通电一定时间后会大量发热
    所以注意不要长时间通电
  • 通电螺线管的磁力与:
    电流成正比
    圈数成正比
    铁芯直径成正相关
  • 一定要加铁芯,会显著提高磁力,因为铁的磁导率很高,可以把磁力线从螺线管内部导出
  • 电压越大磁力越强,5V供电时磁力很微弱。。几乎感受不到。12v供电时就很可观了。
  • 更详细的关于L298N 12v 供电 + pwm 调制的教程可以看我的这篇文章

https://blog.youkuaiyun.com/longmanandoxford/article/details/117653064


stay safe and have fun ~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值