我做一個家庭項目只是爲了好玩,我很熟悉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