было собрана плата для управления ЭП. При подключении к 9 и 10 контактам двигатель работает только при скважности близкой к 100% (255), а при подключении к 5 и 6 все работает нормально. оба моста усиления одинаковые. обе стороны подключал к 5 и 6 все работает, а при подключении к 9 и 10 оба работают при скважности 100%. После уменьшения скважности на 9 контакте ардуино зависает (остаются те же параметры). Плюс еще есть радиопередача. Все дополнительные файлы могу скинуть по запросу Нашел в инете, что библиотека VirtualWire.h затрагивает 9 и 10 контакты, как можно это решить?
Программа для передачи. Код (Text): #include <VirtualWire.h> #include <EasyTransferVirtualWire.h> EasyTransferVirtualWire ET; struct SEND_DATA_STRUCTURE{ byte ID; int a; int b; int c; int d; int v; }; SEND_DATA_STRUCTURE mydata; void setup(){ ET.begin(details(mydata)); mydata.ID = 1; vw_set_ptt_inverted(true); vw_set_tx_pin(9); vw_setup(2000); randomSeed(analogRead(0)); pinMode(2, INPUT); pinMode(4, INPUT); pinMode(6, INPUT); pinMode(8, INPUT); pinMode(13, OUTPUT); } void loop(){ mydata.a=digitalRead(2); mydata.b=digitalRead(4); mydata.c=digitalRead(6); mydata.d=digitalRead(8); mydata.v=analogRead(3)/4; digitalWrite(13,1); ET.sendData(); digitalWrite(13,0); delay(20); } программа для приема Код (Text): #include <VirtualWire.h> #include <EasyTransferVirtualWire.h> EasyTransferVirtualWire ET; struct SEND_DATA_STRUCTURE{ byte ID; int a; int b; int c; int d; int v; }; SEND_DATA_STRUCTURE mydata; int v=0; void setup(){ ET.begin(details(mydata)); Serial.begin(9600); vw_set_ptt_inverted(true); vw_setup(2000); vw_set_tx_pin(11); vw_rx_start(); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); } void loop(){ if(ET.receiveData()){ if (mydata.a==1){ analogWrite(5, mydata.v); analogWrite(6, 0); } else analogWrite(5, 0); if (mydata.b==1){ analogWrite(6, mydata.v); analogWrite(5, 0); } else analogWrite(6, 0); if (mydata.c==1){ analogWrite(9, mydata.v); analogWrite(10, 0); } else analogWrite(9, 0); if (mydata.d==1){ analogWrite(10, mydata.v); analogWrite(9,0); } else analogWrite(10, 0); } }