我做一个家庭项目只是为了好玩,我很熟悉Arduino,但我知道基本知识。Arduino项目 - LDR和伺服电机同步和旋转
我创建了一个自动百叶帘,它在黑暗时打开,在明亮时关闭。
因此,当光线传感器检测到黑暗时,百叶窗帘的板条将旋转到打开位置,并在光线传感器检测到光线时旋转到关闭位置。
im使用:
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);
}
您可能希望查看步进电机系统而不是伺服器。我已经使用hal efffet传感器来确定连接到连续伺服电机的物品的位置。百叶窗中的磁铁 – alexmac