我正在尝试使用solenoid来控制Arduino Uno。我按照教程 Controlling solenoids with Arduino 中描述的说明进行操作。
电磁阀是Solenoid - 5 V (small)和Solenoid 36 V。电阻为10千欧姆,晶体管为IRF520,二极管为1N4007,直流电池电压为7.45 V。
当我连接一个小螺线管时,它正常振动3或4次,它的手臂只是卡在一个位置并开始高频振动(颤抖)。如果我使用大螺线管,它会振动3或4次然后停止。
这是我的代码:
int solPin = 13;
void setup() {
pinMode(solPin, OUTPUT);
}
void loop() {
digitalWrite(solPin, HIGH);
delay(100);
digitalWrite(solPin, LOW);
delay(100);
}
问题在哪里以及如何解决?
答案 0 :(得分:0)
delay(int x)其中x以毫秒为单位。所以你把它推迟了1/10秒?
你的MOSFET晶体管非常大,但只要Arduino可以提供电流来保持开路,那就很好了。您应该编写一个打印语句,打印一个数字,如
Serial.println(count);
count = count +1;
如果此号码保持重置(而不是溢出),那么您就知道您的电源系统存在问题。
PS:别忘了
Serial.begin(9600);
电压问题
图像显示串联2 9伏,因此18伏。我不知道所需的最小电压是多少,但这可能很重要。
答案 1 :(得分:0)
根据您的代码,它似乎可以正常工作;您的代码将产生5hZ输出信号。我找不到您的原理图,所以我缺少很多细节。电磁线圈不应由Arduino供电。 arduino不是电源。尝试将每个延迟增加到1000,然后应该以0.5hZ的速率循环。