Hi there, i want to use this script with a ultrasoon sensor HC-SR04. I changed the script a bit and added a library etc, but it only gives the distances in cm, but does not changes the variables ' if' in brightness...
What am i doing worng? I am still a noob with these things...But i am trying.
I hope someone can help me in the right direction.
thanks.
This is the code i have made now.
#include <NewPing.h>
#define TRIGGER_PIN 9 // Arduino pin verbonden met trigger pin op de ultrasonic sensor.
#define ECHO_PIN 8 // Arduino pin verbonden met echo pin op de ultrasonic sensor.
#define MAX_DISTANCE 250 // Maximale afstand die ik wil meten (in centimeters).
#define REDPIN 5 // Rood van de rgb strip
#define GREENPIN 6 // Groen van de rgb strip
#define BLUEPIN 3 // Blauw van de rgb strip
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup voor de pins en maximale afstand.
long cm;
long old_cm = cm;
//bewaard oude afstanden in de cyclus
long old_b;
long new_b;
void setup() {
Serial.begin(9600); // Open serial monitor op 9600 baud voor resultaat.
pinMode(REDPIN, OUTPUT);
pinMode(GREENPIN, OUTPUT);
pinMode(BLUEPIN, OUTPUT);
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
void loop() {
delay(200); // wacht 75ms tussen metingen (ong. 15 pings/sec).
unsigned int uS = sonar.ping(); // Stuur meting, ontvangst meting in microseconde(uS).
Serial.print("afstand: ");
Serial.print(sonar.convert_cm(uS)); // Zet meettijd om in afstand en print resultaat (0 = maximale afstands bereik, geen meet resultaat)
Serial.println("cm");
Serial.print(new_b);
Serial.println(": helderheid");
Serial.print(cm);
Serial.println(": cm");
if (cm < 16) {
cm = 0;
Serial.println(" 0");
} else if (cm < 20) {
Serial.println(" 1");
cm = 20;
} else if (cm < 30) {
Serial.println(" 2");
cm = 30;
} else if (cm < 40) {
Serial.println(" 3");
cm = 40;
} else if (cm < 50) {
Serial.println(" 4");
cm = 50;
} else if (cm < 60) {
Serial.println(" 5");
cm = 60;
} else if (cm < 70) {
Serial.println(" 6");
cm = 70;
} else if (cm < 80) {
Serial.println(" 7");
cm = 80;
} else if (cm < 90) {
Serial.println(" 8");
cm = 90;
} else if (cm < 100) {
Serial.println(" 9");
cm = 100;
} else if (cm < 110) {
Serial.println(" 10");
cm = 110;
} else if (cm < 120) {
Serial.println(" 11");
cm = 120;
} else if (cm < 130) {
Serial.println(" 12");
cm = 130;
} else if (cm < 140) {
Serial.println(" 13");
cm = 140;
} else if (cm < 150) {
Serial.println(" 14");
cm = 150;
} else if (cm < 160) {
Serial.println(" 15");
cm = 160;
} else if (cm < 170) {
Serial.println(" 16");
cm = 170;
} else if (cm < 180) {
Serial.println(" 17");
cm = 180;
} else if (cm < 190) {
Serial.println(" 18");
cm = 190;
} else {
Serial.println(" 19");
cm = 200;
}
new_b = map(cm, 20, 200, 255, 0);
old_b = map(old_cm, 20, 200, 255, 0);
if (old_b <= new_b){
for (long z = old_b; z < new_b; z++) {
analogWrite(REDPIN, z);
analogWrite(BLUEPIN, z);
analogWrite(GREENPIN, z);
delay(2);
}
}
else {
for (long z = old_b; z > new_b; z--) {
analogWrite(REDPIN, z);
analogWrite(BLUEPIN, z);
analogWrite(GREENPIN, z);
delay(2);
}
}
old_cm = cm;
}