Помогите исправить ошибки

Airat
Offline
Зарегистрирован: 07.07.2012

 Приветствую! С платформой ардуино столкнулся не давно, месяц назад. Могу писать только тривиальные программы. Нашел проект в сети измеритель цветности. В коде куча ошибок,сам пытался исправить не смог,прошу помощи у вас. Сам проект 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]);
}

 

maksim
Offline
Зарегистрирован: 12.02.2012

Уж не знаю как так получилось , но в вашем коде намного больше ошибок, чем в оригинальной статье

// 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]);
}


Как я понял там всего лишь както коряво вставились знаки "<" и ">" т.е. были заменены на "&lt;" и "&gt;"

Airat
Offline
Зарегистрирован: 07.07.2012

 Огромное спасибо,maksim!!! Выручили.