Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

Roman1984
2017-10-15 01:44:09

Сделаю за небольшое вознаграждение. Пишите: production.prv@gmail.com

zagrooz
2017-10-09 21:55:43

Два датчика (оптический датчик) следят за смещением ленты, как только один из датчиков сработал включается двигатель и смещает ленту в противоположную сторону, когда лента выпрямилась, оба датчика в норме, двигатель в исходное положение (третий оптический датчик положения).
Был код изначально такой, без третьего положения.

int photoPin1 = 10;  // левый фоторезистор 
int photoPin2 = 11;  // правый фоторезистор
int motor1 = 8;   // мотор влево
int motor2 = 9;   // мотор вправо
int val1 = 0;       // переменные для хранения значения входного напряжения 
int val2 = 0;       // 

void setup() 
{
  Serial.begin(9600);
  pinMode(motor1, OUTPUT);
  pinMode(motor2, OUTPUT);
}

void loop() 
{
  val1 = digitalRead(photoPin1);  // считываем значение с фоторезисторов
  val2 = digitalRead(photoPin2); 
  Serial.print("values: ");      // выводим их в COM-порт
  Serial.print(val1);
  Serial.print(" : ");
  Serial.println(val2);
  val1 = val1;                 // 
  val2 = val2;                 // 
  if(val1==val2)                 // если равны - стоп двигатель
  {
     digitalWrite(motor1, LOW);
     digitalWrite(motor2, LOW);
     Serial.println("waiting");
  }
  else
  {
    if(val1>val2)                 
    { 
      digitalWrite(motor1, HIGH);
      digitalWrite(motor2, LOW);
      Serial.println("left");
    }
    else
    {
      digitalWrite(motor2, HIGH);
      digitalWrite(motor1, LOW);
      Serial.println("right");
    }
  }
  delay(500);
}

подскажите решение с новыми данными.

Підвал форуму