I have a sharp sensor, and want to dim a lamp when a people walk in..
sensorValue and current is working...
but pulsewidth can't not work...I want the pulsewidth from 0-255 slowly...or when current = 255 , pulsewidth = 100,
pulsewidth will up to 255 from 100 slowly....about delay(10)"+1";
thank you...
#define sensorPin 0
boolean chking=true;
int pulsewidth;
int sensorValue;
int current;
void setup() {
beginSerial(9600);
pinMode(3, OUTPUT);
pinMode(sensorPin, INPUT);
}
void loop() {
sensorValue = analogRead(sensorPin);
//sensor value in case
if (sensorValue>=600 && sensorValue<=700)
{
current=255;
}
if (sensorValue>=547 && sensorValue<=599)
{
current=240;
}
if (sensorValue>=449 && sensorValue<=546)
{
current=225;
}
if (sensorValue>=411 && sensorValue<=448)
{
current=210;
}
if (sensorValue>=390 && sensorValue<=410)
{
current=195;
}
if (sensorValue>=363 && sensorValue<=389)
{
current=180;
}
if (sensorValue>=343 && sensorValue<=362)
{
current=165;
}
if (sensorValue>=330 && sensorValue<=342)
{
current=150;
}
if (sensorValue>=320 && sensorValue<=329)
{
current=135;
}
if (sensorValue>=310 && sensorValue<=319)
{
current=120;
}
if (sensorValue>=302 && sensorValue<=309)
{
current=105;
}
if (sensorValue>=295 && sensorValue<=301)
{
current=90;
}
if (sensorValue>=290 && sensorValue<=294)
{
current=75;
}
if (sensorValue>=287 && sensorValue<=289)
{
current=60;
}
if (sensorValue>=285 && sensorValue<=286)
{
current=45;
}
if (sensorValue>=279 && sensorValue<=284)
{
current=30;
}
if (sensorValue==278)
{
current=15;
}
if (sensorValue>=0 && sensorValue<=277)
{
current=0;
}
//checking
if (chking == true)
{
int Num = current - pulsewidth;
if (pulsewidth == current){
}else{
chking = false;
if (Num > 0){
dimUp();
}else{
dimDown ();
}
}
}
Serial.print(pulsewidth);
Serial.print(' ');
}
void dimDown () {
pulsewidth -= 1;
if (pulsewidth == current) {
chking = true;
}
}
void dimUp () {
pulsewidth += 1;
if (pulsewidth == current) {
chking = true;
}
}