在这篇文章中,我们学习如何制作一个简单的两步Arduino可编程定时器电路,它可以用来开关一个电子负载的ON/OFF与独立可调的ON和OFF时间。
例如,如果您想让一盏灯亮24小时,关2小时,只需通过快速修改程序代码即可。同样,您可以通过适当更改代码,将输出计时自定义为任何其他所需的时间间隔集。
你只需要188app彩票 将以下代码添加到Arduino板上,并根据您的具体应用需要启动计时器功能。
程序代码
void setup(){pinMode(13,输出);}void loop(){digitalWrite(13,高);延迟(86400000);digitalWrite(13,低);延迟(3600000);}
在上面的例子中,代码行延迟(86400000);和延迟(3600000);分别确定输出接通和断开延迟时间间隔(毫秒)。这里是数字86400000毫秒对应24小时,而3600000展品延迟1小时。
您可以根据个人偏好定制这两个值,以获得所需的输出延迟。
一旦设置并通电,Arduino将继续在两步开/关时序之间切换。只要系统保持通电状态。
线路图
完整的电路图以及Arduino的连接如下图所示:
Arduino单次定时器电路
如果你不希望计时器循环通过两步计时器,而是希望计时器是一次性类型,它将在设置延迟后永久关闭OFF,你可以应用以下代码:
Int led = 13;//在大多数Arduino板上,Pin 13有一个LED连接。unsigned long DELAY_TIME = 10000;// 10秒unsigned long delayStart = 0;//延迟开始的时间bool delayRunning = false;void setup() {pinMode(led, OUTPUT);//初始化数字引脚作为输出。digitalWrite(领导、高);//打开led //开始延迟delayStart = millis();delayRunning = true; } void loop() { // check if delay has timed out if (delayRunning && ((millis() - delayStart) >= DELAY_TIME)) { delayRunning = false; // finished delay -- single shot, once only digitalWrite(led, LOW); // turn led off } }
如果您想要一个完全相同的可编程定时器电路的离散设计版本,您可以选择这个电路
Arduino可编程定时器电路所需的零件
- Arduino UNO板=1
- IC 7809=1
- BC547=1
- 1N4007二极管=1
- 10k 1/4 w电阻= 1
- 继电器12V/400欧姆/SPDT/5安培= 1
- 12V交流至直流适配器=1
我可以用arduino nano代替arduino nano吗?
是的,你可以用它…
你好,对不起,如果这似乎准时接,我试图让一个逆变器使用arduino uno,不好连接所以我生成的代码从一个android应用,逆变器似乎工作好,唯一的问题是如何给它所以可以稳定输出电压的反馈。
下面是生成的代码
#包括
#定义HO1 12
#定义LO1 11
#定义HO2 10
#定义LO2 9
int f_sin = 50;
int f_pwm=10000;
浮动sinu缓冲器[200];
浮动sampling_tot、pwm_period sin_period,美国= 1000000;
整数计数=0,标志=0,振幅=1000;
无效的设置(){
Serial.begin(9600);
引脚模式(HO1,输出);
pinMode (LO1、输出);
脉宽调制周期=(us*1)/f脉宽调制;
正弦周期=(us*1)/f_-sin;
sampling_tot = (sin_period / pwm_period) / 2.0;
以pwm_period);
以sin_period);
以sampling_tot);
For (int deg=0;deg(sampling_tot) && flag==1){
国旗= 0;
计数=1;
TCCR1A=0B1011000;
}
如果(计数>(采样总数)&&flag==0){
标志= 1;
计数=1;
TCCR1A = 0 b11100000;
}
计数++;
如果(标志==0){
定时器1.pwm(HO2,正弦缓冲器[计数]*振幅);
定时器1.pwm(LO2,正弦缓冲器[计数]*振幅);
digitalWrite (HO1、高);
数字写入(LO1,低);
}
如果(标志==1){
定时器1.pwm(HO2,正弦缓冲器[计数]*振幅);
定时器1.pwm(LO2,正弦缓冲器[计数]*振幅);
digitalWrite (HO1、低);
数字写入(LO1,高);
}
}
你好,如果逆变器在工作,那意味着代码也应该很好……抱歉,就像你一样,我也不擅长编码,所以在这方面不能帮你太多忙。
你好,先生…星期天快乐…请我想熟悉arduino系统…请帮助…我如何发出命令或编程?谢谢工程师。
你好,Sunshine,你可以阅读下面的文章,以获得关于Arduino编程的一些基本技巧:
188app彩票
亲爱的先生;
我需要Arduino控制的反向和正向继电器控制的项目细节。
以下是步骤:-
1.上电后,只需按ON按钮(PB1), 15秒后按OFF按钮(PB2),继电器1(电机1)和继电器2(电机2)会同时自动启动和停止。
2.继电器3(电机3)将保持停止,除非我们按下方向改变按钮(PB3)。
3.当我们按下PB3时,继电器2停止,继电器3将在15秒的时间间隔后打开。继电器2和继电器3均联锁。通过PB2停下来。
4.除PB3外,还提供接近开关(PB3或接近开关),以根据步骤3改变方向。
5.所有三个继电器1、继电器2和继电器3都从PB1开始,从PB2停止。
6.继电器1仅由PB1和PB2控制。
提前感谢您的友好指导和支持。
桑吉夫·莫班西
sbmohbansi@gmail.com
亲爱的Sanjiv,我不擅长Arduino编码,因此无法帮助您完成此项目。
谢谢您的回复!!
另外,根据你的观点,有没有不使用Arduino的选项??
等待你的建议。
提前谢谢! !
是的,用简单的触发电路
先生,您能详细说明一下如何在atmega328上加载引导程序吗?
非常感谢。
对不起,丹,我不知道。
先生,非常感谢您的快速回复。这正是我需要的。
不客气,丹!
哇,非常感谢Swagatam,代码(草图)运行得非常好。
很高兴它起作用了,丹,希望你的项目成功。