Вот тут можно пример глянуть http://ediy.com.my/blog/item/114-usi...s-with-arduino
Вот тут можно пример глянуть http://ediy.com.my/blog/item/114-usi...s-with-arduino
Сдвиговые регистры 2 шт BU4094 стоят трансивере в PA UNIT,c микроконтролера на них идёт мусор,видно произошёл программный сбой..
я их выпаял и на их выходы подают сигналы 0 или 1 в зависимости от диапазона,сначала я хотел подать эти сигналы с Ардуино...но это опять много проводов...а вот если задействовать сигналы CLK,DATA,STB то надо будет всего четыре провода....и запаять на место сдвиговые регистры...
Последний раз редактировалось UT0UM; 02.10.2016 в 21:13.
Ардуине на данном этапе..этого знать и не надо...я сам буду загружать или переключать,если это можно сделать, соответствующие диапазоны..
Конечно лучше заменить процессор в трансивере,но пока не могу найти таковой..а так трансивер полностью рабочий и выкидывать его как то жалковато...пусть хоть на приём трудиться,впринципе можно и передачу запустить...но это будет уже другая история..
Последний раз редактировалось Tolya; 02.10.2016 в 21:54.
Вот этот код отправит 2 байта в ваши регистры. Там где 1й / 2й байт выставьте биты как вам нужно. Ноги 8-12-11 тоже поставьте какие вам удобней.
//HEF4094
int latchPin = 8; //STR(pin 1)
int clockPin = 12; //CP(pin 3)
int dataPin = 11; //D(pin 2)
void setup() {
pinMode (latchPin, OUTPUT);
pinMode (clockPin, OUTPUT);
pinMode (dataPin, OUTPUT);
}
void loop()
{
sendToReg (0b00000000); // 1й байт
sendToReg (0b00001000); // 2й байт
}
void sendToReg(byte theByte)
{
digitalWrite (latchPin, HIGH); //Pull latch LOW to send data
shiftOut (dataPin, clockPin, MSBFIRST, theByte); //Send the data
digitalWrite (latchPin, LOW); // Pull latch HIGH to stop sending data
}
ну тогда лучше так, один раз записали и все, зачем дергать постоянно?
//HEF4094
int latchPin = 8; //STR(pin 1)
int clockPin = 12; //CP(pin 3)
int dataPin = 11; //D(pin 2)
void setup() {
pinMode (latchPin, OUTPUT);
pinMode (clockPin, OUTPUT);
pinMode (dataPin, OUTPUT);
sendToReg (0b00000000); // 1й байт
sendToReg (0b00001000); // 2й байт
}
void loop()
{
}
void sendToReg(byte theByte)
{
digitalWrite (latchPin, HIGH); //Pull latch LOW to send data
shiftOut (dataPin, clockPin, MSBFIRST, theByte); //Send the data
digitalWrite (latchPin, LOW); // Pull latch HIGH to stop sending data
}
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)