определение врашения и счетчик импульсов

0259
0259 аватар
Offline
Зарегистрирован: 30.03.2014

Доброго Времени Суток!

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

помогите пожалуйста с программным кодом.




 
// задаем переменые
int byt1 = 3;     // номер входа, подключенный к датчику1
int byt2 = 5;     // номер входа, подключенный к датчику2
int ledPin =  8;  // номер выхода светодиода
int val1 = 0;     //переменная для установки
int val2 = 0;     //переменная для установки
int val3 = 0;     //переменная рабочего цикла
int val4 = 0;     //переменная рабочего цикла 
 
void setup() {
Serial.begin(9600);  // подгружаем сериал порт
pinMode (byt1,INPUT);// определяем ножку для входа 1 датчика 
pinMode (byt2,INPUT);// пределяем ножку для входа 2 датчика
pinMode (ledPin,OUTPUT); // определяем свнтодиод контроль
val1 = digitalRead(byt1); //считываем положение датчика1
val2 = digitalRead(byt2); //считываем положение датчика2
if(val1 = 1){Serial.println ("dt1 - ok");} // датчик1 прошол проверку
if(val1 = 0){Serial.println ("dt1 - ErOOr");} // датчик1 не прошол проверку
if(val2 = 1){Serial.println ("dt2 - ok");} // датчик1 прошол проверку
if(val2 = 0){Serial.println ("dt2 - ErOOr");} // датчик1 не прошол проверку
digitalWrite(ledPin,HIGH);///мигаем светодиодом
delay(100);
digitalWrite(ledPin,LOW);
delay(100);
digitalWrite(ledPin,HIGH);
delay(100);
digitalWrite(ledPin,LOW);
delay(100);
digitalWrite(ledPin,HIGH);
delay(100);
digitalWrite(ledPin,LOW);///мигаем светодиодом
delay(100);
Serial.println ("System ok");// сообшение о том что все готова

}
 
void loop(){
val3 = digitalRead(byt1); // считываем датчик 1
val4 = digitalRead(byt2); // считываем датчик 2
if(val3 = 0){if(val4 = 0){Serial.println("->");}} // проверяем и показываем направления движения

val3 = digitalRead(byt1); // считываем датчик 1
val4 = digitalRead(byt2); // считываем датчик 2
if(val4 = 0){if(val3 = 0){Serial.println("<-");}} // проверяем и показываем направления движения
}

 

0259
0259 аватар
Offline
Зарегистрирован: 30.03.2014

нашол ошибку в своём коде 

исправляю ошибка была в знаки = 




// задаем переменые
int byt1 = 3;     // номер входа, подключенный к датчику1
int byt2 = 5;     // номер входа, подключенный к датчику2
int ledPin =  8;  // номер выхода светодиода
int val1 = 0;     //переменная для установки
int val2 = 0;     //переменная для установки
int val3 = 0;     //переменная рабочего цикла
int val4 = 0;     //переменная рабочего цикла 
 
void setup() {
Serial.begin(9600);  // подгружаем сериал порт
pinMode (byt1,INPUT);// определяем ножку для входа 1 датчика 
pinMode (byt2,INPUT);// пределяем ножку для входа 2 датчика
pinMode (ledPin,OUTPUT); // определяем свнтодиод контроль
val1 = digitalRead(byt1); //считываем положение датчика1
val2 = digitalRead(byt2); //считываем положение датчика2
if(val1 == 1){Serial.println ("dt1 - ok");} // датчик1 прошол проверку
if(val1 ==0){Serial.println ("dt1 - ErOOr");} // датчик1 не прошол проверку
if(val2 == 1){Serial.println ("dt2 - ok");} // датчик1 прошол проверку
if(val2 == 0){Serial.println ("dt2 - ErOOr");} // датчик1 не прошол проверку
digitalWrite(ledPin,HIGH);///мигаем светодиодом
delay(100);
digitalWrite(ledPin,LOW);
delay(100);
digitalWrite(ledPin,HIGH);
delay(100);
digitalWrite(ledPin,LOW);
delay(100);
digitalWrite(ledPin,HIGH);
delay(100);
digitalWrite(ledPin,LOW);///мигаем светодиодом
delay(100);
Serial.println ("System ok");// сообшение о том что все готова

}
 
void loop(){
val3 = digitalRead(byt1); // считываем датчик 1
val4 = digitalRead(byt2); // считываем датчик 2
if(val3 == 0){if(val4 == 0){Serial.println("->");}} // проверяем и показываем направления движения

val3 = digitalRead(byt1); // считываем датчик 1
val4 = digitalRead(byt2); // считываем датчик 2
if(val4 == 0){if(val3 == 0){Serial.println("<-");}} // проверяем и показываем направления движения
}