в общем впаял вчера новый такой же транзистор (только корус ТО-92, потомучто SOT-23 хрен прицепишь с его ножками-волосиками), поменяв местави эмиттер и коллектор, и всё заработало.
ГРЁБАНЫЕ КИТАЙЦЫ! как же так? видимо они впаяли pnp вместо npn. ну уж вариант, что допущена ошибка при проектировании платы, кажется совсем невероятным... напишу этим гадёнышам, спрошу как они так умудрились.
всем огромное спасибо за помощь, а то извёлся уже я с этими реле.
Всё же осталось непонятным (мне), как в схеме, той что от руки нарисована, может корректно работать pnp тразистор? Какой активный уровень на входе, что бы запиталось реле ("0" или "1")?
Всё же осталось непонятным (мне), как в схеме, той что от руки нарисована, может корректно работать pnp тразистор? Какой активный уровень на входе, что бы запиталось реле ("0" или "1")?
если я правильно понял ваш вопрос то в скетче я пишу:
digitalWrite(22, 0); - включить
digitalWrite(22, 1); - выключить
причём этот вариант работает для всех реле (и одинарных, с перепаянным транзистором, и двойных, которые работали изначально). я кстати сам был несколько удивлён нелогичности команды: 0 - включено, 1 - выключено. для меня, как для программиста, такая команда выглядит "шиворот-на-выворот".
дополнительно померял ещё напряжение между землёй и сигнальным контактом реле (Gnd и In): при разомкнутом реле 5в, при замкнутом 0в. если мерять между Vcc контактами In, то всё наоборот: при разомкнутом реле 0в, при замкнутом 5в.
А нельзя ли безопасно подключать светодиод и вообще любую нагрузку к любому аналоговому выходу (6,9,10,11), ЧЕРЕЗ шунтирующий резистор (1-10ом) , к выходу которого вместе с нагрузкой подключен аналоговый вход для контроля падения напряжен. на этом резисторе.
Например для 10ом если паден. напр. на превышает 0.1в (для гарантии допустимого тока до 20мА т.е. разница напр. на выходном аналоговом (напр.11) и входном аналоговом(напр. А1) входах превысила 0.1в (20 ед от 1024) -снижать на выходе. Точнее повышать ступенчато от 0ля пока разница не превысит 20ед.
Или из за 490Гц ШИМ будут бол. "помехи"?
А то вот как могла бы выглядеть "функция безопасного включения любой нагрузки(в т.ч. диода без резистора) на любом аналоговом выходе (с задействием аналогового входа) c самоконтролем выходного тока до 20ма:
в общем впаял вчера новый такой же транзистор (только корус ТО-92, потомучто SOT-23 хрен прицепишь с его ножками-волосиками), поменяв местави эмиттер и коллектор, и всё заработало.
ГРЁБАНЫЕ КИТАЙЦЫ! как же так? видимо они впаяли pnp вместо npn. ну уж вариант, что допущена ошибка при проектировании платы, кажется совсем невероятным... напишу этим гадёнышам, спрошу как они так умудрились.
всем огромное спасибо за помощь, а то извёлся уже я с этими реле.
Всё же осталось непонятным (мне), как в схеме, той что от руки нарисована, может корректно работать pnp тразистор? Какой активный уровень на входе, что бы запиталось реле ("0" или "1")?
Это еще ничего, один раз попалась китайская схемка где микруха кверх ногами припаяна. Ключ на ртсован вниз а микруха ключом наверх смотрит.
Всё же осталось непонятным (мне), как в схеме, той что от руки нарисована, может корректно работать pnp тразистор? Какой активный уровень на входе, что бы запиталось реле ("0" или "1")?
если я правильно понял ваш вопрос то в скетче я пишу:
digitalWrite(22, 0); - включить
digitalWrite(22, 1); - выключить
причём этот вариант работает для всех реле (и одинарных, с перепаянным транзистором, и двойных, которые работали изначально). я кстати сам был несколько удивлён нелогичности команды: 0 - включено, 1 - выключено. для меня, как для программиста, такая команда выглядит "шиворот-на-выворот".
дополнительно померял ещё напряжение между землёй и сигнальным контактом реле (Gnd и In): при разомкнутом реле 5в, при замкнутом 0в. если мерять между Vcc контактами In, то всё наоборот: при разомкнутом реле 0в, при замкнутом 5в.
Значит имеем эмиттерный повторитель на pnp транзисторе. При "0" на входе, на эмиттере будет +0,7 В.
А нельзя ли безопасно подключать светодиод и вообще любую нагрузку к любому аналоговому выходу (6,9,10,11), ЧЕРЕЗ шунтирующий резистор (1-10ом) , к выходу которого вместе с нагрузкой подключен аналоговый вход для контроля падения напряжен. на этом резисторе.
Например для 10ом если паден. напр. на превышает 0.1в (для гарантии допустимого тока до 20мА т.е. разница напр. на выходном аналоговом (напр.11) и входном аналоговом(напр. А1) входах превысила 0.1в (20 ед от 1024) -снижать на выходе. Точнее повышать ступенчато от 0ля пока разница не превысит 20ед.
Или из за 490Гц ШИМ будут бол. "помехи"?
А то вот как могла бы выглядеть "функция безопасного включения любой нагрузки(в т.ч. диода без резистора) на любом аналоговом выходе (с задействием аналогового входа) c самоконтролем выходного тока до 20ма:
void fWrite1A11controlA1() {
int inVal255, outVal = 15;
int inVal1024 = analogRead(A1);
while (outVal - inVal255 < 20 && outVal < 255) {
outVal += 20;
analogWrite(11, outVal);
//delay(1);
inVal1024 = analogRead(A1);
inVal255 = map(inVal1024, 0, 1023, 0, 255);
Serial.println(String(inVal255) + "->[0..255]->" + String(outVal));
}
}
Не сработает?