查看: 480|回复: 7

[未解决] 程序继电器问题

[复制链接]

签到天数: 1 天

[LV.1]初来乍到

发表于 2022-7-2 21:19 | 显示全部楼层 |阅读模式
??????????

我这里又双叒叕变天了。。。
(大无语好吧
写了一个程序,一切正常
各位大佬能不能帮个忙,看一下是什么让继电器一直在开和关中“止步不前”
(想想一个开关,被程序搞得开关开关开关开关......viod loop(无限循环PS我对了吗))
程序
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
Servo myservo;
LiquidCrystal_I2C mylcd(0x3F ,16,2);
int pos=0;
int at1=13;
int at2=12;
int at3=11;
int at4=10;
int beep=8;
int aj1;
int aj2;
int aj3;
int aj4;
void setup()
{
pinMode(2, OUTPUT);
pinMode(at1, INPUT);
pinMode(at2, INPUT);
pinMode(at3, INPUT);
pinMode(at4, INPUT);
mylcd.init();
mylcd.backlight();
myservo.attach(9);
mylcd.setCursor(0, 0);
mylcd.print("fan off ");
mylcd.setCursor(0, 1);
mylcd.print("shark off");
}
void loop()
{
aj1=digitalRead(at1);
aj2=digitalRead(at2);
aj3=digitalRead(at3);
aj4=digitalRead(at4);
if (aj1==HIGH)
{
  mylcd.setCursor(0, 0);
  mylcd.print("fan on ");
  digitalWrite(2,HIGH);
}
if (aj2==HIGH)
{
  mylcd.setCursor(0, 0);
  mylcd.print("fan off ");
  digitalWrite(2,LOW);
}
}
看看吧 求求你们了



















我的风扇

我的风扇

签到天数: 1 天

[LV.1]初来乍到

 楼主| 发表于 2022-7-2 21:33 | 显示全部楼层
我补充一下,我是想做一个按键持续开风扇,另外一个按键关上,这段该怎么弄?
新手上路,问题多多,感谢包容

签到天数: 72 天

[LV.6]常住居民II

发表于 2022-7-2 21:36 | 显示全部楼层
if (aj1==HIGH &&  digitalRead(2) != HIGH)
{
  mylcd.setCursor(0, 0);
  mylcd.print("fan on ");
  digitalWrite(2,HIGH);
}
if (aj2==HIGH &&  digitalRead(2) != LOW)
{
  mylcd.setCursor(0, 0);
  mylcd.print("fan off ");
  digitalWrite(2,LOW);
}

签到天数: 1 天

[LV.1]初来乍到

 楼主| 发表于 2022-7-2 21:38 | 显示全部楼层
解释一下好吗
小白看不大懂

签到天数: 1 天

[LV.1]初来乍到

 楼主| 发表于 2022-7-2 21:42 | 显示全部楼层
而且还是不行诶
继电器老样子
我闻到烧焦味了......

签到天数: 433 天

[LV.9]以坛为家II

发表于 2022-7-2 23:05 | 显示全部楼层
從那堆線真看不出你的線路到底是怎麼接的...

個人給些建議::
1.按鈕採接地觸發型式,pinMode指令改為
  pinMode(at1, INPUT_PULLUP ); 這樣的指令,
  當開關閒置時內部上拉電阻會讓 I/O 讀到 HIGH,
  你改判定開關是否讀取到 LOW=已觸發

2.定下優先權,比方說開關A、B若同時被按下時
  哪邊優先執行? 因為一個要開一個要關很容易互斥,
  把優先權高的條件先定下,再用"else if"指令,當優先
  權高的條件不成立時再判定優先權低的部份,若
  優先高的條件有成立就跳過判定優先權低的部份

3.請考慮按鍵"接點彈跳"的問題,條件成立後先
  delay(50); 停個 50ms 再進行繼電器驅動

p.s.若你非得要按鍵用 HIGH 觸發的話,按鍵最好
  接下拉電阻,當開關閒置時讓 I/O 處於 LOW 狀態
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

求助VSCode+PlatformIO Arduino怎么把文件包含到工程中
求助VSCode+PlatformIO Ar
请教一下论坛大佬 PlatformIO对文件进行编译过程中报错“undefined reference to xxx
一款基于Arduino平台的零代码就可驱动的串口彩屏分享
一款基于Arduino平台的零
多年前在论坛上看到一个帖子: 引起了我的共鸣:能不能有一种彩屏,可以像Arduino I
自制麦轮小车robomasterV4详细教程
自制麦轮小车robomasterV4
一 介绍 这个帖子中,我将介绍用arduino制作一台PID调制的麦轮小车底盘部分的方法 资
MS39233 无刷直流马达—完美替代 ST SPIN233
MS39233 无刷直流马达—完
MS39233 是一款低压三个半桥驱动器。完美替代ST SPIN233。它可应用于低电压及电池供电
用arduino nano 连接esp8266,代码写不进esp8266里面,有偿求解决
用arduino nano 连接esp82
哪位大佬能帮我解决下,发二十元红包请喝杯奶茶。+V:lcmazjq 接线图和错误信息在附件
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表