задачка с выводом числа на дискретные выходы

harbor
Offline
Зарегистрирован: 31.05.2016

Есть плата Ардуино мини про, неободимо вывести в двоичном виде на 16 светодиодов число от 1 до 65535

16 выходов у это платы вроде бы нет, так что придется изобретать обвязку, какой-нибудь дешифратор ставить

либо поочередно выводить на 8 выходов данные, и соответственно для каждой пачки данных подключать свою группу светодиодов.

Вроде как есть функция bitRead(), то есть можно из заданного числа вычитать все биты и отправлять их на светодиоды, но как? ))

harbor
Offline
Зарегистрирован: 31.05.2016

Или можно заставить все входы/выходы работать как выходы. в том числе и аналоговые?

negavoid
Offline
Зарегистрирован: 09.07.2016

Можно. А0 = D14, A1 = D15 и т.д.

harbor
Offline
Зарегистрирован: 31.05.2016

о это упрощает жизнь, а как это будет выглядеть в коде? то есть как вывести бит на ножку А0 например

сорри, я перывй день с ардуино

negavoid
Offline
Зарегистрирован: 09.07.2016
pinMode( A0, OUTPUT );
digitalWrite( A0, HIGH );
andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Я думаю, задачку Вам задали для того, чтобы Вы сами в ней разобрались, а не искали, кто бы ее решил за Вас.

harbor
Offline
Зарегистрирован: 31.05.2016

мне 38 лет :)

и это только кусок задачи. мне надо будет через RS485 читать по модбасу слово состояние входов проверочного девайса и выводить его на индикаторы..

я что-то хелпа не нашел пока с примерами, так что проще спросить кого-ниибудь

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Если задача уже про RS485 и модбас, а мы не разбираемся в битах - наверное, всё-таки стоит начать с самых основ, как считаете?

harbor
Offline
Зарегистрирован: 31.05.2016

Почему вам захотелось меня повоспитывать? Я 15 лет назад закончил кафедру вычислительной техники, программировал для кр580 на ассемблере те самые биты байты)) прекрасно в этом разбираюсь, работаю с промышленными контроллерами и скада системами, но не разбираюсь пока в синтаксисе ардуино.

Мне не хочется лопатить гугл в поисках хелпов, потом пытаться изобретать велосипед, так как есть форум и проще спросить у людей. Но почемуто нарываюсь на воспитателей, которые вместо помочь увидели во мне студента двоечника. Так что может смените тон, как считаете?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

harbor, ничего личного. Возраст и стаж не играет роли.  У нас принято помогать тем, кто что-то уже сделал, но зашёл в тупик или возникли вопросы. Вы ничего не сделали, и хотите фактически что бы вам написали готовый код. (а иначе на ваш вопрос "но как" не ответишь.)

JasKo
Offline
Зарегистрирован: 21.11.2015

harbor, раз Вы 15 лет назад закончили кафедру вычислительной техники, то Вам достаточно будет одной подсказки - "сдиговый регистр 74HC595" - думаю дальше разберетесь.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

harbor пишет:

прекрасно в этом разбираюсь, работаю с промышленными контроллерами и скада системами, но не разбираюсь пока в синтаксисе ардуино.

так, разберись в синтаксисе дуино вместо козыряния тут своим возрастом и прохфесорскими лампасами

harbor
Offline
Зарегистрирован: 31.05.2016

negavoid пишет:

pinMode( A0, OUTPUT );
digitalWrite( A0, HIGH );

А разве А0? в хелпах пишут что если юзать аналоговые входы/выходы как цифровые то надо обращаться к ним с 14 по 19 номера

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

harbor пишет:

Я 15 лет назад закончил кафедру вычислительной техники, программировал для кр580 на ассемблере те самые биты байты)) прекрасно в этом разбираюсь

Позвольте Вам не поверить. Ведь это Вы писали?

harbor пишет:

Вроде как есть функция bitRead(), то есть можно из заданного числа вычитать все биты и отправлять их на светодиоды, но как? ))

Ни  один человек, писавший на Ассемблере для МК, никогда не будет не то что спрашивать, как пользоваться функцией bitRead(), но и вообще когда-либо ею пользоваться, т.к. знет, что такое битовые операции.

harbor
Offline
Зарегистрирован: 31.05.2016

ребятки, вы это серьезно на счет готового кода для зажигания светодиода? может денег заплатить?)) Да я прошу готовый код на вывод в ​аналоговый порт, но не на проект. который мне хочется реализовать

harbor
Offline
Зарегистрирован: 31.05.2016

Да знаю я про битовые операции, успокойся уже, речь не об этом, а о синтаксисе. Лучше ответь, почему включил учителя?

JasKo
Offline
Зарегистрирован: 21.11.2015

Для самостоятельного написания такого простого кода вот здесь http://arduino.ru/Reference есть все необходимое.

negavoid
Offline
Зарегистрирован: 09.07.2016
static const uint8_t A0 = 14;  // но я всё же весьма согласен с остальными ораторами :)

И вопрос на засыпку, а какой ток потечёт через МК, если вы высветите 65535?

strarbit
Offline
Зарегистрирован: 12.06.2016
 
Хотя не известна точно задачка. Если предположить, что нужно просто вывести переменную типа int – 16 бит на сдвиговые регистры, то просто shiftOut().

дополню unsigned int беззнаковое целое

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Нет синтакса Ардуины, есть синтакс Си (Си++ ). Язык который появился, когда КР580ВМ80А померла. Z80A ушел туда же.

А ответ на ваш вопрос это http://ad.cctpu.edu.ru/cpp/glava3_5.htm . Я не хочу повторять тоже самое здесь.

На вывод в ​аналоговый порт не получится. Так как там не ЦАП. Опять же AVR выводит побитно, а не побайтно. Хотя может через Ассемблер, не вкурсе

strarbit
Offline
Зарегистрирован: 12.06.2016

negavoid пишет:

static const uint8_t A0 = 14;  // но я всё же весьма согласен с остальными ораторами :)

И вопрос на засыпку, а какой ток потечёт через МК, если вы высветите 65535?

16 светиков

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Мда, ещё один с ЧСВ. Разбирается он в битах/байтах, и в это же время юзает bitRead, вместо того, чтобы разобраться в битах/байтах. Зато гонору - пестдец гора.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

harbor пишет:

Но почемуто нарываюсь на воспитателей, которые вместо помочь увидели во мне студента двоечника. Так что может смените тон, как считаете?

блин! я ж совсем забыл, что у меня есть для этого спец. тема в спец. приёмнике Памахите навечку!

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

harbor пишет:

...увидели во мне студента двоечника.

А Вы себя таковым не считаете?

Подумайте над этим...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

harbor пишет:

не разбираюсь пока в синтаксисе ардуино.

В нём никто не разбирается, т.к. у Ардуино нет синтаксиса.

Если Вы имеете в виду синтаксис языка С++ на котором пишутся программы для Ардуино, то для выпускника кафедры вычислительной техники ... не разбираться в синтаксисе С++ ... даже постановка вопроса как-то странно выглядит.