Уважаемые ардуинщики, нужна ваша помощь.

Долго рассусоливать не буду.

Поставлена задача сделать сенсорный выключатель.

Выбор пал на готовые ардуиновские блоки.

Плата сенсора:

Уважаемые ардуинщики, нужна ваша помощь. Помощь, Arduino, Без рейтинга, Длиннопост

Плата реле:

Уважаемые ардуинщики, нужна ваша помощь. Помощь, Arduino, Без рейтинга, Длиннопост

Сенсор питается от 5 В, реле — от 12 В.

На коленке по-быстрому состряпал такую схему (вроде, проще не придумаешь):

Уважаемые ардуинщики, нужна ваша помощь. Помощь, Arduino, Без рейтинга, Длиннопост

И тут возникла проблема, всё вместе работать отказывается. При включении срабатывает реле, и всё... На сигнальном проводе постоянно присутствует 5 В.

Отдельно сенсор работает отлично, на выход I/O выдаёт 5 В.

А вот если включить отдельно только плату реле, на пустом входе IN почему-то показывает 12 В.

Это моя первая попытка в ардуиностроении, и я подозреваю, что решение лежит на поверхности, но сам додуматься не могу, опыта маловато.

(В качестве дежурных предположений есть идея поменять блок реле на 5-вольтовый, на этом фантазия исчерпалась.)

Что посоветуете?

Arduino & Pi

1.4K постов20.6K подписчиков

Добавить пост

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

Вы смотрите срез комментариев. Показать все
1
DELETED
Автор поста оценил этот комментарий

Ненавижу ардуину!!!

Только хардкор С и ASM!!!

раскрыть ветку (10)
6
Автор поста оценил этот комментарий

C и ASM для слабаков. Машинный код - для настоящих мужиков.

раскрыть ветку (9)
2
Автор поста оценил этот комментарий

push %ebp

mov %esp,%ebp

call 0x8048298

cmp $0x41,%eax

jne 0x80483ce

push $0x80484b0

call 0x80482c8

add $0x4,%esp

mov $0x0,%eax

mov %ebp,%esp

pop %ebp

ret


0x55 0x89 0xe5 0xe8 0xfc 0xff 0xff 0xff

0x83 0xf8 0x41 0x75 0x0d 0x68 0x00 0x00

0x00 0x00 0xe8 0xfc 0xff 0xff 0xff 0x83

0xc4 0x04 0xb8 0x00 0x00 0x00 0x00 0x89

0xec 0x5d 0xc3

hello world ! для 86 процессора.

Но я бы как истинный железячник написал бы через вызов прерывания int21H

Для староверов порекомендую https://stackoverflow.com/questions/1023593/how-to-write-hel...

раскрыть ветку (8)
Автор поста оценил этот комментарий

Ересь какая-то.

Через int 21h попроще будя

раскрыть ветку (5)
Автор поста оценил этот комментарий

Конечно проще, если int21 поддерживается ms-dos. А то мало ли, старая XT будет стоять и болт.

раскрыть ветку (4)
1
Автор поста оценил этот комментарий

Что значит если?

int 21h и есть сервис MS-DOS

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

Поймал диванного кодера))

Автор поста оценил этот комментарий

Я имел  ввиду, что первые версии доса имели ограниченное количество функций прерывания. Более поздние версии компилировались под более современные процессоры и на ХТ скажем уже не работали.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

бодро использовал int 21h на ХТ вплоть до MS-DOS 6.22

DELETED
Автор поста оценил этот комментарий

Ну это Челябинский хардкор...

Как понимаю относительно ардуины возражений нет?  ;-)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Только если эмулятор х86 будет работать =)

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку