我做一个家庭项目只是为了好玩,我对 Arduino 很陌生,但我知道基础知识。
我正在创建一个自动百叶窗,它会在黑暗时打开,在明亮时关闭。
因此,百叶帘的百叶窗在光传感器检测到黑暗时会旋转到打开位置,当光传感器检测到光时会旋转到关闭位置。
我在用着:
arduino uno r3/连续伺服电机/led/LDR(光传感器)/10k电阻/
此代码适用于标准伺服电机。我希望它与连续伺服电机一起工作,因为你可以“更好地控制它”,它就是我所拥有的。
我想我需要一个类似这样的 if 语句:
如果光传感器检测到黑暗则将伺服电机旋转一定角度然后停止,如果光传感器检测到光则将伺服电机旋转一定角度然后停止。
#include <Servo.h>
Servo servo1;
int sensorPin = A0; // select the input pin for the ldr
int ledPin = 13;
unsigned int sensorValue = 0;
int servoPin = 9;
int pos = 0;
void setup()
{
//Start Serial port
Serial.begin(9600); // start serial for output - for testing
servo1.attach(9);
pinMode(ledPin, OUTPUT);
}
void loop()
{
// For DEBUGGING - Print out our data, uncomment the lines below
Serial.print("Cell = "); // print the value (0 to 1024)
Serial.println(analogRead(sensorPin)); // print carriage return
pos = analogRead(sensorPin);
pos = constrain (pos, 0, 1023);
int servoPos = map(pos, 0, 1023, 255, 0);
int servoDegree = map(servoPos, 255, 0, 0, 179);
servo1.write(servoDegree);
Serial.print("Servo Degree = ");
Serial.println(servoDegree);
int val = analogRead(sensorPin);
val = constrain (val, 0, 1023);
int ledLevel = map(val, 0, 1023, 255, 0);
analogWrite (ledPin, ledLevel);
delay(50);
}