09 RC_Motor:A0 电位器控制 D7 输出口的舵机,控制其转动角度(舵机需自备,Arduino 需要外部供电)
/*
Eagler8实验程序列表
09 RC_Motor:A0 电位器控制 D7 输出口的舵机,控制其转动角度(舵机需自备,Arduino 需要外部供电)
*/
#include <Servo.h>
Servo myservo;
int analogPin = 0;
int val;
void setup()
{
myservo.attach(7);// 7号引脚输出电机控制信号
Serial.begin(9600);
}
void loop()
{
Serial.print("servo:");
Serial.println(val);
delay(15);
val = analogRead(analogPin); // 读取来自可变电阻的模拟值(0到1023之间)
val = map(val, 0, 1023, 0, 179); // 利用“map”函数缩放该值,得到伺服电机需要的角度(0到180之间)
myservo.write(val); // 设定伺服电机的位置
delay(15); // 等待电机旋转到目标角度
}
舵机自动180度摇摆
控制80度旋转
10 LED_RGB_Text:全彩 LED 基本颜色变化
/*
Eagler8实验程序列表
10 LED_RGB_Text:全彩 LED 基本颜色变化
*/
#define LEDR 9
#define LEDG 10
#define LEDB 11
int i = 0;
void setup()
{
pinMode(LEDG,OUTPUT);
pinMode(LEDB,OUTPUT);
pinMode(LEDR,OUTPUT);
}
void loop()
{
analogWrite(LEDR,0);
analogWrite(LEDB,0);
analogWrite(LEDG,0);//off
analogWrite(LEDR,255);
delay(500); //hong
analogWrite(LEDG,100);
delay(500); //cheng
analogWrite(LEDR,255);
analogWrite(LEDG,255);
delay(500); //huang
analogWrite(LEDR,0);
analogWrite(LEDG,255);
delay(500); //lv
analogWrite(LEDB,255);
delay(500); //qing
analogWrite(LEDG,0);
analogWrite(LEDB,255);
delay(500); //lan
analogWrite(LEDR,255);
analogWrite(LEDG,0);
delay(500); //zi
analogWrite(LEDG,255);
analogWrite(LEDB,255);
analogWrite(LEDR,255);
delay(500); //bai
}
第一个方案,只是混合颜色的呼吸灯,不太对头,继续试验.....
第二方案,以红、蓝、绿的颜色顺序做呼吸状变化,还是对不上.......
实验方案三,有点像了,就是程序复杂些了,暂时这样吧(以后再尝试简化)