Помогите исправить ошибки
- Войдите на сайт для отправки комментариев
Сб, 07/07/2012 - 21:19
Приветствую! С платформой ардуино столкнулся не давно, месяц назад. Могу писать только тривиальные программы. Нашел проект в сети измеритель цветности. В коде куча ошибок,сам пытался исправить не смог,прошу помощи у вас. Сам проект www.georgegardner.info/arduino/photoresistor-color-sensing-with-the-arduino.html
И сам код.
int pwmrgb[] = {11, 9, 10}; //sets the r,g,b cathode pins for the pwm led (must be pwm pins)
int rgbbias[] = {100, 15, 0}; //sets the bias for the illuminated RGB LED: higher number = less intense (max 255)
int rgbds[] = {255, 255, 255};
int maxwhite[] = {773, 624, 542};
int minblack[] = {309, 134, 104};
int sensorValue = 0;
int speed = 5;
int lt = 0;
int i = 0;
void setup()
{
pinMode(2, OUTPUT); //sensor red cathode
pinMode(3, OUTPUT); //sensor green cathode
pinMode(4, OUTPUT); //sensor blue cathode
Serial.begin(9600);
for (int i = 2; i < 5; i++)
{
digitalWrite(i, HIGH);
analogWrite(pwmrgb[i-2], rgbds[i-2]);
}
}
void loop()
{
int switchstate = analogRead(A5);
if(switchstate > 1000);
{
for(int i = 2; i < 5; i++);
{
digitalWrite(i, HIGH);
analogWrite(pwmrgb[i-2], 255);
}
delay(1000);
switchstate = analogRead(A5);
while(switchstate < 1000);
{
switchstate = analogRead(A5);
}
delay(500);
}
for(int i = 0; i < 3; i++)
{
delay(100);
digitalWrite(i + 2, LOW);
delay(100);
sensorValue = analogRead(A0);
rgbds[i] = constrain(sensorValue, minblack[i], maxwhite[i]);
rgbds[i] = map(rgbds[i], minblack[i], maxwhite[i], 0, 255);
printresults(i);
rgbds[i] = (255 + rgbbias[i]) - rgbds[i];
rgbds[i] = constrain(rgbds[i], 0, 255);
digitalWrite(i + 2, HIGH);
}
for(int i = 0; i < 3; i++)
{
analogWrite(pwmrgb[i], rgbds[i]);
}
delay(speed);
}
void printresults(int i){
if(i == 0) Serial.print(“RED: “);
if(i == 1) Serial.print(“GREEN: “);
if(i == 2) Serial.print(“BLUE: “);
Serial.println(rgbds[i]);
}
Уж не знаю как так получилось , но в вашем коде намного больше ошибок, чем в оригинальной статье
// Color Match // January 28, 2012 // by George Gardner int pwmrgb[] = { 11, 9, 10}; //sets the r,g,b cathode pins for the pwm led (must be pwm pins) int rgbbias[] = { 100, 15, 0}; //sets the bias for the illuminated RGB LED: higher number = less intense (max 255) int rgbds[] = { 255, 255, 255}; int maxwhite[] = { 773, 624, 542}; int minblack[] = { 309, 134, 104}; int sensorValue = 0; int speed = 5; void setup(){ pinMode(2, OUTPUT); //sensor red cathode pinMode(3, OUTPUT); //sensor green cathode pinMode(4, OUTPUT); //sensor blue cathode Serial.begin(9600); for(int i = 2; i < 5; i++){ digitalWrite(i, HIGH); analogWrite(pwmrgb[i-2], rgbds[i-2]); } } void loop(){ int switchstate = analogRead(A5); if(switchstate > 1000){ for(int i = 2; i < 5; i++){ digitalWrite(i, HIGH); analogWrite(pwmrgb[i-2], 255); } delay(1000); switchstate = analogRead(A5); while(switchstate < 1000){ switchstate = analogRead(A5); } delay(500); } for(int i = 0; i < 3; i++){ delay(100); digitalWrite(i + 2, LOW); delay(100); sensorValue = analogRead(A0); rgbds[i] = constrain(sensorValue, minblack[i], maxwhite[i]); rgbds[i] = map(rgbds[i], minblack[i], maxwhite[i], 0, 255); // printresults(i); rgbds[i] = (255 + rgbbias[i]) - rgbds[i]; rgbds[i] = constrain(rgbds[i], 0, 255); digitalWrite(i + 2, HIGH); } for(int i = 0; i < 3; i++){ analogWrite(pwmrgb[i], rgbds[i]); } delay(speed); } void printresults(int i){ if(i == 0){ Serial.print("RED: "); } if(i == 1){ Serial.print("GREEN: "); } if(i == 2){ Serial.print("BLUE: "); } Serial.println(rgbds[i]); }Как я понял там всего лишь както коряво вставились знаки "<" и ">" т.е. были заменены на "<" и ">"
Огромное спасибо,maksim!!! Выручили.