Здравствуйте.
Похожая проблема.
Спаял схему усилителя на кт816А для управления оборотами движка.
Все предельно просто:
Скетч
const int ledPin = 6;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
byte brightness;
if (Serial.available()) {
// read the most recent byte (which will be from 0 to 255):
brightness = Serial.read();
// set the brightness of the LED:
analogWrite(ledPin, brightness);
}
}
Программа на Delphi посылает байт данных (0..255) на com4, который преобразуется в сигнал на пин6.
Работает всё как часы - водишь скролбаром на форме от 0 до 255 моторчик то останавливается, то раскручивается в полную мощь. Ток пина6 не превышает 12 мА (хотя со светодиодом и на 30 работает нормально).
Но стоит несколько раз поиграться со скролбаром как связь по com4 прекращается. Перезапуск программы (и соответственно, переоткрытие порта) ничего не даёт. В то же время, сам микроконтроллер (Arduino Deicimila) функционирует нормально (ток держится на том уровне, на котром был установлен последней командой com4.
Вопрос - микроконтроллер виноват или что-то заземлить забыл????
И ещё - при включении блока питания com-порт также "отваливается".
Страницы 1