MandyBigbai MandyBigbai
关注数: 8 粉丝数: 42 发帖数: 2,978 关注贴吧数: 10
【求助】arduino控制继电器,单按键 自己码了个10路继电器代码,单轻触开关控制 1,按下松手,继电器开闭交替,10路无限循环 2,再按下松手,继电器停在一个随机位置,保持常开 自己写了个Oldtime和mils,发现用轻触,有问题,会有个按钮时间的问题,假象的不灵敏 求大神帮忙改改 1,去抖 2,瞬间实现停和继续 代码奉上 int buttonPin = 2; boolean Relstate = false; boolean OldStatus, FlashEnable, FlashBit; long OldTime; int Relay2 = 3; int Relay3 = 4; int Relay4 = 5; int Relay5 = 6; int Relay6 = 7; int Relay7 = 8; int Relay8 = 9; int Relay9 = 10; int Relay10 = 11; int Relay11 = 12; int num; void setup() { for (int i = 3; i < 13; i++) { pinMode(i, OUTPUT); } pinMode(buttonPin, INPUT); randomSeed(analogRead(0)); } void loop () { if (digitalRead(buttonPin) & !OldStatus) { FlashEnable = !FlashEnable; } OldStatus = digitalRead(buttonPin); if (millis() - OldTime > 200) { FlashBit = !FlashBit; OldTime = millis(); } if (FlashEnable) { if (FlashBit) { digitalWrite(Relay2, HIGH); digitalWrite(Relay3, LOW); digitalWrite(Relay4, LOW); digitalWrite(Relay5, LOW); digitalWrite(Relay6, LOW); digitalWrite(Relay7, LOW); digitalWrite(Relay8, LOW); digitalWrite(Relay9, LOW); digitalWrite(Relay10, LOW); digitalWrite(Relay11, LOW); delay(100); digitalWrite(Relay2, LOW); digitalWrite(Relay3, HIGH); digitalWrite(Relay4, LOW); digitalWrite(Relay5, LOW); digitalWrite(Relay6, LOW); digitalWrite(Relay7, LOW); digitalWrite(Relay8, LOW); digitalWrite(Relay9, LOW); digitalWrite(Relay10, LOW); digitalWrite(Relay11, LOW); delay(100); digitalWrite(Relay2, LOW); digitalWrite(Relay3, LOW); digitalWrite(Relay4, HIGH); digitalWrite(Relay5, LOW); digitalWrite(Relay6, LOW); digitalWrite(Relay7, LOW); digitalWrite(Relay8, LOW); digitalWrite(Relay9, LOW); digitalWrite(Relay10, LOW); digitalWrite(Relay11, LOW); delay(100); digitalWrite(Relay2, LOW); digitalWrite(Relay3, LOW); digitalWrite(Relay4, LOW); digitalWrite(Relay5, HIGH); digitalWrite(Relay6, LOW); digitalWrite(Relay7, LOW); digitalWrite(Relay8, LOW); digitalWrite(Relay9, LOW); digitalWrite(Relay10, LOW); digitalWrite(Relay11, LOW); delay(100); digitalWrite(Relay2, LOW); digitalWrite(Relay3, LOW); digitalWrite(Relay4, LOW); digitalWrite(Relay5, LOW); digitalWrite(Relay6, HIGH); digitalWrite(Relay7, LOW); digitalWrite(Relay8, LOW); digitalWrite(Relay9, LOW); digitalWrite(Relay10, LOW); digitalWrite(Relay11, LOW); delay(100); digitalWrite(Relay2, LOW); digitalWrite(Relay3, LOW); digitalWrite(Relay4, LOW); digitalWrite(Relay5, LOW); digitalWrite(Relay6, LOW); digitalWrite(Relay7, HIGH); digitalWrite(Relay8, LOW); digitalWrite(Relay9, LOW); digitalWrite(Relay10, LOW); digitalWrite(Relay11, LOW); delay(100); digitalWrite(Relay2, LOW); digitalWrite(Relay3, LOW); digitalWrite(Relay4, LOW); digitalWrite(Relay5, LOW); digitalWrite(Relay6, LOW); digitalWrite(Relay7, LOW); digitalWrite(Relay8, HIGH); digitalWrite(Relay9, LOW); digitalWrite(Relay10, LOW); digitalWrite(Relay11, LOW); delay(100); digitalWrite(Relay2, LOW); digitalWrite(Relay3, LOW); digitalWrite(Relay4, LOW); digitalWrite(Relay5, LOW); digitalWrite(Relay6, LOW); digitalWrite(Relay7, LOW); digitalWrite(Relay8, LOW); digitalWrite(Relay9, HIGH); digitalWrite(Relay10, LOW); digitalWrite(Relay11, LOW); delay(100); digitalWrite(Relay2, LOW); digitalWrite(Relay3, LOW); digitalWrite(Relay4, LOW); digitalWrite(Relay5, LOW); digitalWrite(Relay6, LOW); digitalWrite(Relay7, LOW); digitalWrite(Relay8, LOW); digitalWrite(Relay9, LOW); digitalWrite(Relay10, HIGH); digitalWrite(Relay11, LOW); delay(100); digitalWrite(Relay2, LOW); digitalWrite(Relay3, LOW); digitalWrite(Relay4, LOW); digitalWrite(Relay5, LOW); digitalWrite(Relay6, LOW); digitalWrite(Relay7, LOW); digitalWrite(Relay8, LOW); digitalWrite(Relay9, LOW); digitalWrite(Relay10, LOW); digitalWrite(Relay11, HIGH); delay(100); digitalWrite(Relay2, LOW); digitalWrite(Relay3, LOW); digitalWrite(Relay4, LOW); digitalWrite(Relay5, LOW); digitalWrite(Relay6, LOW); digitalWrite(Relay7, LOW); digitalWrite(Relay8, LOW); digitalWrite(Relay9, LOW); digitalWrite(Relay10, LOW); digitalWrite(Relay11, LOW); delay(100); num = random(3, 13); delay(100); } } else digitalWrite(num, HIGH); delay(100); Relstate = !Relstate; }
【Arduino 】拖尾灯 添加按键中断咨询 拖尾灯代码,打算拆了2 做按钮中断 1,轻触按键一次,主程序中断,执行子程序,随机亮灯一盏,记录按键状态,停留在子程序中 2,轻触按键一次,退出子程序,执行主程序拖尾 咨询大牛,怎么添加?在哪里填。目前还没找到相关教程 const unsigned char leds[] = { A5, A4, A3, A2, A1, A0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 } const unsigned int maxPwm = 100; const unsigned int initPwm = 100; const unsigned int deltaPwm = 1; const unsigned int deltaPercent = 70; const unsigned long delayMs = 70; const unsigned char ledNum = sizeof(leds) / sizeof(leds[0]); unsigned int ledPwm[ledNum]; void setup() { for (char i = 0; i < ledNum; ++i) { pinMode(leds[i], OUTPUT); ledPwm[i] = 0; } } extern volatile unsigned long timer0_millis; void loop() { static unsigned char head = 0; static unsigned long lastTick = timer0_millis; unsigned int i, j; for (i = 0; i < ledNum; ++i) { if (ledPwm[i] == 0) continue; digitalWrite(leds[i], HIGH); } ledPwm[head] = initPwm; for (i = 0; i < maxPwm; ++i) { for (j = 0; j < ledNum; ++j) { if (i == ledPwm[j]) digitalWrite(leds[j], LOW); } delayMicroseconds(1); } if (timer0_millis - lastTick < delayMs) return; lastTick = timer0_millis; for (i = 0; i < ledNum; ++i) { ledPwm[i] = ledPwm[i] * deltaPercent / 100; if (ledPwm[i] <= deltaPwm) ledPwm[i] = 0; else ledPwm[i] -= deltaPwm; if (i == head) ledPwm[i] = initPwm; } head = (head + 1) % ledNum; }
我的大掌门之路吐槽帖:给策划一堆吐槽建议 玩大掌门不算早,第10区开的时候才玩。一直坚持到现在,今儿领的十万元宝48天奖励。不算厉害,也不算菜。和大佬没法比,但是稳定全区前15(论剑、比武),血战稳定全区前3,各活动稳定前5(天下、玩具、魔教神马的)。我区活人能玩的,目前153人。我测试一周每天只打1关血战验证的。 如今我是实在玩不下去了。吐下面几个槽,有赞有喷的,我发完贴也懒得看了。 1,界面提醒太多,很多没用,天天提醒 我有强迫症,手机不能存在未读消息或者右上角红点。有,我就想办法弄掉。 大坑门2,从打开游戏时候,就一堆红点要点:有用的,给元宝的就不提了。 ---分享论剑第一提醒什么鬼,老子开区就没上过论剑第一,***天天提醒我干毛。 ---VIP福利,每天我领,每周礼包,我从来没买过,坑人的,都知道。每次上游戏都红点。**大爷。6折200万钱,卖900元宝。策划你怎么不去死。都知道集市每天买5份,4天才花400元宝。6折***谁脑袋大么?一个养成类游戏,后期都在熬时间。。。不会算么?还是打算一直坑新玩家不算账。 ---聊天那个红点,***是去不掉了,还屏蔽不了。我就想问,这游戏,聊天有必要么?我看别人强化100,精炼10.抽到个燕十三,跟我毛关系。唯一一个能聊的,也就私聊。关键是,这游戏需要说话?沟通?我一个QQ群,比这打字强多了。问题是,你这聊天卡的跟狗似的,打开它,我能切换QQ聊好几句。 ---每天玩具前和魔教前必蹦红包啥意思。还蹦在那个经常需要点屏幕离开的位置。新区一蹦就40-50个,我光等红包蹦完,起码2分钟没了。都点完了之后,本来想终于没了,想轻松一下,教主前又蹦,再蹦40来个。玩到现在还是,每天还能蹦10个8个。老子看动画,能看半天。 ---门派里面,喝酒和探索老有标记。我就纳闷了,我就4瓶三加的酒,憋1600双倍用,天天蹦个坛子干啥,憋酒料憋酒不让,憋药材就不提醒?你怎么不提醒我,药方齐了,可以炼丹了?!还有那个**探索,就一个次数还蹦。 2,任务太多,动画更多,耽误时间,体验不好 大坑门2,任务多,多到难以想象。比我其他游戏多了起码2倍,奖励还低的离谱,给的东西毛用没有。 ---血战,之前还能卡BUG,前一天的3星,今天打了2星,还能跳过。现在,跳不过去,遇到6V6,卖在55关,就要手工看动画,一个一个点到90关。看动画就算了,起手放合璧的,必须放完我才能跳过。起手特么没放合璧的,我还等打完人,站稳才能跳过。***的,我硬生生看动画,点跳过,点奖励界面,点了35关进去,每关起码浪费10-15秒。老子,打个血战,起码10-15分钟进去。我已经一周不怎么打血战了,因为想到要手动打20-30关,我就**。 ---门派盗贼和探索山贼,要看战斗画面?!我就特么纳闷了,西门一个大就解决的事儿,小李子阵容沈浪一拳头的问题,也就十一打两回合。***还要看一次战斗画面,跳过?他是能打死我还是咋地。你要么奖励10-20个精炼或者蘑菇,增加难度让我打。就特么一个蘑菇,一个精炼,还是概率的,我还选开战,看5秒动画,再跳过。 ---历练还是直接4和24小时吧。别弄4-8-12了。历练还得算时间,早上10点做完任务,想起来历练没上,扔个12小时进去,半夜还得起来继续历练?浪费12小时进去。 ---每天夺残章是最闹心的任务。全绿,先告诉我有毛用?一键搜寻,就特么寻了一下。我要合6次,才拿满任务。开箱子,***概率,48天,我就开出2个橙。我每天10个箱子10个箱子买,算上活动出的。1000个箱子有了。这概率。 ---藏兵阁,这个逼活动,是我玩到现在最**的。小号等队伍,熬战力,熬到45万战,能自己挑橙过。后期就是单打一辈子。刚开始,全紫出紫奖,全橙出橙奖,现在。。。我就不骂策划了,你就是3逼。我天天30元宝刷,18个打完,540元宝,算起来换两个碎片。你就这么玩大家吧。一个重铸5,原来要起码40天,等全队重铸5,这游戏才能到一定乐趣阶段。你现在调低概率,大家玩一年?一年半?二年?***脑子让炮崩了?阴阳师1年半,就衰落了,你觉得你能兴多久。48天,一个区就鬼了。新区现在还有多少人玩?你自己看看15天以后,新区还有多少活人。 ---副本三星问题。我在这就问一句,有多少人是1星到60章左右,回头发现自己40章还是10星上不去的。多了去了吧。 ---很多画面的动画,永远是最闹心,最耽误事儿的。每日任务奖励,领奖,咱能设置一次领取么?非要一个一个点,看获得什么?血战每3关那就不提了,额外奖励我300铁,每5关奖励,还要弹个画面?手动就够闹心点到60-70了,还要手动点领奖,还要手动选属性,还要手动跳过。侠义副本,每次都要看完对面阵容,还没情节跳过,再等跳过战斗什么鬼,打不过么?还是?那不是白送的奖励么?还一顿点,切换章节? ---每天偷菜那个15次和5偷,啥意思?拿个手上去砸,第一个画面没弹完,我还不能砸下面那块地的。想想每天要偷15次,就**,要不是为了1400换歃血,我***不想偷菜。关键是,种子。。。种子,7级以后的地,有多少缺种子的? 吐槽这么多,我真没耐心玩下去了。48天,算个念想。每天我除了玩具还能想起来打打,魔教改时间,什么夺城时间,我都记不清了。自从魔教改时间,我就没打过。以前每次都是联盟第一,第二。呵呵。还有那个玩具,我只打一刀排名80,3个章,打全服第二4个章,你觉得,有必要打前几名么?我现在都是一刀走。抢完我还能剩8000多,现在这人数,最多排名80.血战我打一关就能排153. 大坑门2,你真的让我留下念想的,只剩下阵容这一个玩法了。
1 下一页