Подключение по последовательному SSI
- Войдите на сайт для отправки комментариев
Ср, 30/11/2016 - 10:07
Здравствуйте участники форума!
Пытался я подключить абсолютный магнитный энкодер ЛИР-МА317Б (http://www.sensor.dp.ua/?catalog&dep=356)
к Arduino Due, по последовательному SSI и как результат всегда на выходых энкодера ноль. Все линии энкодера (DATA,CLOCK и инверсные) подключены к Arduino через резисторы 3,7КОм без подтяжек.
Сразу говорю, я не программист, потому прошу не кидаться тапками за какие нибудь очевидные косяки, но убитая неделя на этом энкодере вынудила обратиться за помощью к вам.
Прилагаю последий скетч, который не дает никакого результата. Заранее спасибо за помощь.
#define CLK 40 #define CLK_inv 41 #define DATA 30 #define DATA_inv 31 byte HEnc [12]; byte HEnc_inv [12]; byte LEnc [12]; byte LEnc_inv [12]; int i; void setup () { digitalWrite(CLK,LOW); digitalWrite(CLK_inv,LOW); pinMode(DATA,INPUT); pinMode(DATA_inv,INPUT); pinMode(CLK,OUTPUT); pinMode(CLK_inv,OUTPUT); Serial.begin (9600); } void loop () { digitalWrite (CLK,HIGH); delayMicroseconds (10); digitalWrite (CLK,LOW); delayMicroseconds (10); for(i=0;i<11;i++) { digitalWrite(CLK,HIGH); delayMicroseconds(5); digitalWrite(CLK_inv,LOW); delayMicroseconds(5); HEnc [i] == digitalRead(DATA); HEnc_inv [i] == digitalRead(DATA_inv); digitalWrite(CLK,LOW); delayMicroseconds(5); digitalWrite(CLK_inv,HIGH); delayMicroseconds(5); LEnc [i] == digitalRead(DATA); LEnc_inv [i] == digitalRead(DATA_inv); } digitalWrite (CLK,HIGH); delayMicroseconds (50); for(i=0;i<11;i++) { Serial.print ("HEnc= "); Serial.print (HEnc[i]); Serial.print (" HEnc_inv= "); Serial.print (HEnc_inv[i]); Serial.print (" LEnc= "); Serial.print (LEnc[i]); Serial.print (" LEnc_inv= "); Serial.println (LEnc_inv[i]); } }