极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10807|回复: 4

求助

[复制链接]
发表于 2014-3-19 21:43:31 | 显示全部楼层 |阅读模式
我想用random 去控制LED亮 而當我按下按鈕時才不亮
我試過得多次都不行
求大神們
回复

使用道具 举报

发表于 2014-3-19 22:20:30 | 显示全部楼层
是那裡不行?

LED 接 PWM 接口, 用 analogWrite 輸出 0-255 的數值可以控制光度, 應該沒問題的.
loop() 一開始 check 有按下時就 輸出 0, 否則輸出 random 數值, 再給一點 delay, 應該沒問題的.
但光度 random 轉變, 人眼未必看得清, 可能只會感到在閃動.  可以加長一點 delay 試試.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-19 22:21:51 | 显示全部楼层
Super169 发表于 2014-3-19 22:20
是那裡不行?

LED 接 PWM 接口, 用 analogWrite 輸出 0-255 的數值可以控制光度, 應該沒問題的.

我不用控制亮度
回复 支持 反对

使用道具 举报

发表于 2014-3-19 22:28:06 | 显示全部楼层
iohongwal 发表于 2014-3-19 22:21
我不用控制亮度

那麼是那裡不行???

可以是連線問題, 亦可以是程式問題.
不知你有什麼問題, 很難猜想是什麼原因的.
回复 支持 反对

使用道具 举报

发表于 2014-3-19 22:33:16 | 显示全部楼层
本帖最后由 Super169 于 2014-3-19 22:48 编辑

這裡有一份按键控制的教程, 是我之前買套件送的, 很詳細的, 你看看吧.
有連線和原碼, 你改成 按下時不亮, 否則 random 亮就可以吧.



如果還是不行, 你按文件中的接線, 再用以下程式試試吧.

  1. int ledpin=11;
  2. int inpin=7;
  3. int val;
  4. void setup()
  5. {
  6.   pinMode(ledpin,OUTPUT);
  7.   pinMode(inpin,INPUT);
  8. }

  9. void loop()
  10. {
  11.   val=digitalRead(inpin);
  12.   if (val == LOW) {
  13.     if (random(0,10) < 5)
  14.       digitalWrite(ledpin, HIGH);
  15.     else
  16.       digitalWrite(ledpin, LOW);
  17.     delay(200);
  18.   } else
  19.     digitalWrite(ledpin, LOW);
  20. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-10 04:14 , Processed in 0.036023 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表