fansbinbin 发表于 2013-4-24 05:40:18

请问各位老鸟,只有这些 命令能写一个呼吸等么?怎么写?

我自己做一个小东西,我想让一个呼吸灯在    Attiny85 里面运行,
可是一查Attiny 只能支持如下命令,我把呼吸灯程式写进去,直接就没有呼吸效果,就是一个blink...

pinMode()
digitalWrite()
digitalRead()
analogRead()
analogWrite()
shiftOut()
pulseIn()
millis()
micros()
delay()
delayMicroseconds()
SoftwareSerial

请问就用这些命令能写出一个呼吸灯么?不能用 for() , if()

请大侠门帮忙 帮我写一个好么? 十二分感谢!!!

或者哪位大侠知道怎么让 Attiny 支持 for if 命令请教教我...
非常感谢大家~~~

春泥蛋炒饭 发表于 2013-4-24 08:28:55

楼主对那篇原文理解有误,这些列出来的命令是指由arduino封装的函数,for和if是C的基本语句,当然支持,否则就无法实现你列出的那些命令。你试试就知道了。

fansbinbin 发表于 2013-4-24 08:57:39

春泥蛋炒饭 发表于 2013-4-24 08:28 static/image/common/back.gif
楼主对那篇原文理解有误,这些列出来的命令是指由arduino封装的函数,for和if是C的基本语句,当然支持,否则 ...

哦。。这样啊,谢谢~!但是我试了怎么没有效果呢...那个灯 就是一闪一闪没有呼吸效果哎~~~

pgf017979 发表于 2013-4-24 09:00:33

你可以用analogWrite()函数实现呀

pgf017979 发表于 2013-4-24 09:01:33

attiny85的芯片arduino支持2个PWM,如果直接当作AVR用就用3个硬件PWM

qptimus 发表于 2013-4-24 11:10:50

int ledPin = 11;      // 设定控制LED的数字IO脚
int val;                //定义一个变量
void setup()
{
   pinMode(ledPin, OUTPUT);   // 设定数字IO口的模式,OUTPUT 为输出
}
void loop()
{
for(val=0;val<255;val++)      //变量循环+1
    {
analogWrite(ledPin, val); //PWM输出
delay(50);                //设定延时时间 越小呼吸频率越快
    }
for(val=255;val>0;val--)   //变量循环-1
    {
   analogWrite(ledPin, val);
   delay(50);
    }
}

伯德 发表于 2013-4-27 22:28:43

本质就是控制灯的的电流大小。 和用for 或者if 有什么关系?

迷你强 发表于 2013-4-28 09:18:02

伯德 发表于 2013-4-27 22:28 static/image/common/back.gif
本质就是控制灯的的电流大小。 和用for 或者if 有什么关系?

本质是控制功率的大小

伯德 发表于 2013-4-29 00:28:07

迷你强 发表于 2013-4-28 09:18 static/image/common/back.gif
本质是控制功率的大小

特地看了PWM口的知识。 这里LED灯电阻固定。 其功率P=UI=I^2*R=U^2/R,,PWM口输出的应该是电压的变化0-5V. 你是对的。本质是功率。
用的是万用表量的,应该是个有效值。 Arduino PWM脚应该是输出方波吧? 改天用示波器量一下。
页: [1]
查看完整版本: 请问各位老鸟,只有这些 命令能写一个呼吸等么?怎么写?