#26 Re: Програмування Arduino » Сделайте мне программу! » 2016-02-05 22:37:40

У меня сейчас ровно 12 лет трудового стажа программиста плюс ещё лет 7 баловства с разными языками программирования. Родители - программисты, это всё объясняет, хотя батя почти сразу же перешёл в электронщики, потому что [в СССР] программистам мало платили :-)

Спасибо всем тем, кто помогает начинающим советом и делом. Почему вы это делаете? Потому, что все мы - высокоразвитые социальные существа, которые могут быть альтруистами и получать положительные эмоции от безвозмездной помощи другим, хотят получать признание и почёт в своих кругах, да и просто самореализоваться. Чувствуете позитив - значит есть дополнительный смысл в этой жизни, всё хорошо! Да и в последние годы лучше так помочь кому-то, чем тратить время на чтение негативных новостей.

Давным-давно, с появлением у меня диалапа я засел на fido7.ru.delphi. Как же там продуманно всё было сделано: FAQ, модераторы с плюсомётом и банами, для чайников специальное место fido7.ru.delphi.chainik, где можно было задавать простейшие вопросы. Туда заходили и гуру программирования, так как больше им особо тусоваться было негде - тогда Интернет был ещё маленький. А метод Google не работал, потому что искать на просторах Интернета было особо нечего) Что-то полезное найти почитать было достаточно трудно. А сейчас в распоряжении каждого -- море доступной информации, удобный поиск, но мало кто хочет читать и учиться. Напоминает мечты советских учёных о том, что, мол, когда компьютеры станут доступными каждой семье, то все поголовно начнут заниматься наукой, расчётами, что приведёт к скорому освоению космоса и запуску управляемой термоядерной реакции... лайканью котиков в соцсетях, выкладыванию фото завтраков в Инстаграмме и взрыванию разноцветных шариков на удивительных карманных гигагерцовых многоядерных вычислительных машинах :-D

#27 Re: Програмування Arduino » Нужно написать программу. За меня. » 2016-02-05 16:52:35

Если у вас шаговые двигатели, то предлагаю вам сначала собрать и воспроизвести какой-нибудь пример для них (для одного), а потом попробовать его изменить.
Пример примера: https://www.arduino.cc/en/Tutorial/StepperSpeedControl

#28 Re: Програмування Arduino » Нужно написать программу. За меня. » 2016-02-05 11:53:33

Вот тут написано, как писать на Arduino на чистом C: https://habrahabr.ru/post/247663/
А ещё там есть комменатрий после статьи, что "внутри" Ардуино на самом деле есть прослойка, которая вызывает ваш скетч:

int main(void)
{
	init();

	setup();
    
	for (;;)
		loop();
        
	return 0;
}

Вот она-то и ожидает от вашей программы наличия минимума из двух подпрограмм https://www.arduino.cc/en/Tutorial/BareMinimum:

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

#29 Re: Програмування Arduino » Нужно написать программу. За меня. » 2016-02-04 11:41:58

Да у этой Меги ножек хоть отбавляй https://arduino-info.wikispaces.com/MegaQuickRef
Можно попробовать заменить, например, на 22-ую. Для этого надо также заменить в программе 20 на 22 (там, где это относится к подгоревшей ножке).

#30 Re: Програмування Arduino » Нужно написать программу. За меня. » 2016-02-03 21:22:47

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

#31 Re: Програмування Arduino » Сохранение данных с порта в текстовый файл на компьютер » 2016-02-03 21:12:07

Интересно, получится ли так:

copy COM1 %USERPROFILE%\Documents\comport.txt

где "COM1" надо заменить на ваш реальный виртуальный порт Arduino, а "%USERPROFILE%\Documents\comport.txt" - на путь с вашими правами на запись.

#32 Re: Проекти » Арт-проект на 50 LED. Потрібні поради. » 2016-02-03 12:14:18

А если через каждых 2 метра поставить по такому светодиоду, чтобы они управляющий сигнал регенерировали? Или там ничего такого нет?

Альтернатива - пойти глубже http://lednews.lighting/topic/1633-podk … orii-cat5/

#33 Re: Програмування Arduino » Нужно написать программу. За меня. » 2016-02-03 11:44:24

mat пише:

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

Разрядность умного камня aka CPU или MCU заметна, прежде всего, в разрядности его регистров общего назначения, в т.ч. самого популярного регистра - аккумулятора. Естественно, что арифметико-логическое устройство заточено под ту же самую разрядность (но может использовать два регистра результата для операций типа умножения, потому что иначе результат девать некуда будет).

На что это влияет? Например, порты ввода-вывода такой же ширины, при том что эти порты у микроконтроллера из Ардуино занимают большую часть ножек. А ещё на скорость обработки целочисленных данных, так как за одну арифметическую операцию размер числа ограничен количеством бит машинного слова. Не проблема обработать "длинное" число за пару проходов, но это же время. Ещё малая разрядность отражается в малой разрядности различных шин, адресуемой памяти. Представьте себе только, как рассчитать указатель, используя 8-битный регистр, если у вас данные хранятся по адресу около 1 мегабайта - это три захода при прямой адресации, что, конечно, немного обходится регистрами сегментов памяти, но это уже совсем другая сказка.

Все входы одного порта можно за раз (за операцию) читать-писать. Да, каждый бит там имеет свою ножку. Но можно обращаться выборочно к отдельным ножкам.

#34 Re: Проекти » Арт-проект на 50 LED. Потрібні поради. » 2016-02-02 23:36:03

Толковый рассказ о том, как работают эти светодиоды: https://www.youtube.com/watch?v=P7fqKKpwpBQ
Их можно купить даже на Slando, который стал OLX, по 7 грн за штуку: http://olx.ua/list/q-WS2812B/

#35 Re: Проекти » Арт-проект на 50 LED. Потрібні поради. » 2016-02-02 18:51:10

Готовое решение - адресуемые светодиоды. Наглядный первый попавшийся ролик https://www.youtube.com/watch?v=6atLA5xxA8Q

Кстати, надо попросить магазин закупить что-то типа этого https://www.adafruit.com/products/306 -- 32 RGB светодиода на метр, каждый светодиод управляется отдельно.

Наверное, эти светодиоды в тёмной коробочке можно использовать как регенераторы управляющего сигнала и протянуть по 10 метров провода из центра комнаты от ЦУ.

#36 Re: Проекти » Арт-проект на 50 LED. Потрібні поради. » 2016-02-02 15:52:33

Все светодиоды должны управляться независимо или 5 светодиодов на одном отдельно взятом объекте загораются вместе?

#37 Re: Програмування Arduino » Нужно написать программу. За меня. » 2016-02-02 12:01:16

Если загуглить, то наверняка схемы и прошивки найти можно. Я вот даже не гуглил, а просто со второго клика по Ютубу нашёл такое видео, у которого в описании ссылка на архив со всем добром, пока качается -- https://www.youtube.com/watch?v=90ZovgKY91Y

А вот нагуглил на Хабре: https://geektimes.ru/post/256358/

#38 Re: Програмування Arduino » Нужно написать программу. За меня. » 2016-02-02 11:45:11

mat пише:

на вход этого драйвера нужно подать три сигнала, Enable, Step и Dir

Шаговые...

mat пише:

Двигатели не шаговые, а постоянного тока.

Не шаговые :-)

Давно как-то смотрел на YouTube, как это сделано. Заметил, что синхронизация делается один раз на оборот (светодиод по фотоприёмнику или датчик Холла).
Т.е. измеряем время T полного оборота светодиодной линейки, далее делим его на "радиальное разрешение" экрана, получаем время свечения одной строки t и далее выдаём строки, сменяя их через время t.
А можно наоборот поступить: стабилизировать скорость вращения двигателя при остальном всём на заранее рассчитанных константах.

Выглядит красиво https://www.youtube.com/watch?v=Md78sOI1-r8

#39 Re: Апаратні питання » Подключение MOSFET напрямую и через ЦАП. Как правильно? » 2016-01-31 13:47:25

Nefreemen пише:

строк службы AGM заявлена 8- 10 лет при 200 циклах по 80% разряда. Реальная эксплуатация показывает что 2 года и батарей нет. Причем количество циклов тоже за 2 года ну максимум 40- 50. Почему?

Может быть, там "под звёздочкой" сказано, что при условии разряда/заряда токами, которые не больше чем от карманного фонарика и при постоянной комнатной температуре. Или три разряда на 10% эквивалентны по разрушающей силе одному 80%-ному. Или дозарядка неправильная. Или китайцы плохо работают и делают из некачественных материалов.

PS: Есть где разгуляться экспериментаторам, ушёл читать http://electrotransport.ru/ussr/index.php?topic=2103.0

#40 Re: Проекти » Подойдет ли Ардуино для автоматизации умным домом? » 2016-01-31 01:04:21

monomnmn пише:

подключать к Ардуине большое количество разнообразных датчиков

О, тут в магазине есть даже аналоговый коммутатор на 16 входов с возможностью каскадирования.

#41 Re: Програмування Arduino » Считывание напряжения и тока, управление напряжением » 2016-01-29 18:13:38

Напряжение, как разность потенциалов, меряют между условной "землёй" и "сигналом". Со стороны Arduino всё просто, вот тут, соответственно, чёрный и синий провода на рисунке https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage для измерения одного напряжения.

#42 Re: Програмування Arduino » Считывание напряжения и тока, управление напряжением » 2016-01-29 17:45:39

SpaceQuester пише:

Объясните пожалуйста вот эту схему: https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage

Там переменный резистор с ручкой выступает в качестве делителя напряжения, вот полученное с него напряжение и измеряет Arduino на входе A0.

#43 Re: Програмування Arduino » Создание своей библиотеки » 2016-01-29 15:58:19

Есть тут хитрость http://stackoverflow.com/questions/1316 … an-arduino
т.е. в вашем коде тогда надо писать как-то так:
"MyClass::MyClass(int rxD, int txD) : _mySerial(rxD, txD) { }"

#44 Re: Програмування Arduino » Создание своей библиотеки » 2016-01-29 15:40:04

Там ещё много всяких ошибок пишется, если прокрутить вывод.

Если убрать "static" из "private:  static SoftwareSerial _mySerial;", то уйдут, например, ошибки "undefined reference to `MyClass::_mySerial'".

#46 Re: Програмування Arduino » Считывание напряжения и тока, управление напряжением » 2016-01-29 12:11:14

SpaceQuester пише:

Помогите пожалуйста с программкой, очень нужно для нужд российской науки.

А как же русский форум http://goo.gl/h402mB ?

SpaceQuester пише:

нужно уметь подавать напряжение от

Arduino не умеет выдавать постоянное напряжение. Есть как минимум два варианта решения этой задачи: добавить внешнюю микросхему ЦАП (DAC) или выдавать через RC-цепочку и ШИМ (PWM) импульсы, которые с некоторой погрешностью сойдут за постоянку.

SpaceQuester пише:

снять показание напряжения от 0 до + 5.0 Вольт (кстати, а до 10 Вольт можно снимать значения?)

Встроенный АЦП (ADC) позволяет это сделать, примеров куча, в т.ч. и на официальном сайте https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
Можно мерять и 10 Вольт, предварительно уменьшив напряжение в два раза через резистивный делитель, и опять же задача не нова: http://forum.arduino.cc/index.php?topic=12563.0

SpaceQuester пише:

снять показание тока от 0 до 0.1 милиАмера (ток постоянный

Какой-то слишком маленький ток для ардуинщиков, тут без шилда не обойтись :-)
Ну как там обычно меряют - ставят шунт (R) и по закону Ома  I = U / R  вычисляют ток (I) из падения напряжения (U).
Резистор ставят номиналом поменьше, чтобы падение напряжение было небольшим и процесс измерения меньше влиял на измеряемую величину. При этом для измерения малых напряжений надо задуматься об изменении опорного напряжения АЦП в меньшую сторону (там есть нижний предел вроде 1 Вольт).
Ну, а вобщем как-то так: http://www.vwlowen.co.uk/arduino/current/current.htm

SpaceQuester пише:

Контроллер подключен к PC как COM порт. Какими командами из внешней программы на PC (пусть это будет С++ или MATLAB) нужно задавать

Это уже чисто программирование. Arduino прямо из коробки даёт возможность прикладной программе на ПК общаться с вашей прошивкой в микроконтроллере через последовательный порт: https://www.arduino.cc/en/Tutorial/Soft … ialExample

Пример управления встроенным светодиодом через COM-порт с компьютера (управлять можно прямо из Arduino IDE через Serial Monitor):

void setup() {
  pinMode(13, OUTPUT);
  Serial.begin(9600);
  while (!Serial); // wait for serial port to connect. Needed for native USB port only
}

void loop() {
  if (Serial.available() > 0) {
    int incomingByte = Serial.read();
    switch (incomingByte) {
      case '0': digitalWrite(13, LOW); break;
      case '1': digitalWrite(13, HIGH); break;
      default: Serial.print("Expected 0 or 1 but you entered "); Serial.println((char)incomingByte); break;
    }
  }
}

Да, знание английского языка очень полезно в этом деле.

#47 Re: Апаратні питання » Кто подключал реле SSR-40DA? » 2016-01-29 01:01:47

monah3000 пише:

подстраховаться

И ещё надо в схему добавить предохранитель на 30 Ампер.

#48 Re: Апаратні питання » Подключение MOSFET напрямую и через ЦАП. Как правильно? » 2016-01-27 13:09:29

sstepane пише:

через ЦАП - открывая до нужного состояния

IMHO вся прелесть MOSFET'ов в том, что у них низкое сопротивление в открытом состоянии, что позволяет получить хорошее КПД и низкое тепловыделение (ну, это связано само собой).
Если же такой [силовой] транзистор открывать не до конца, то он превратится в печку. Именно поэтому и применяют ШИМ для управления, например, теми же двигателями или лампочками.

sstepane пише:

Один пин - прямо на мосфет, второй идет от ЦАП. Как их правильно развязать

Поставить два мосфета параллельно :-) Или, например, неактивный выход переводить в высокоимпедансное состояние средствами МК или дополнительным чем-то.

#49 Re: Проекти » Подойдет ли Ардуино для автоматизации умным домом? » 2016-01-27 00:48:55

monomnmn пише:

1) Возможно ли, чтобы Ардуино время от времени заряжал через юсб постоянно подключенный к нему телефон, при этом с ним общаясь? (Напр. заряд 75% - включается зарядка до 100%) Сам Ардуино постоянно включенный в розетку.

Программа на Android может без проблем узнавать уровень заряда аккумулятора смартфона. Arduino через реле может включать зарядку телефона.

monomnmn пише:

2) Можно ли будет подключать к Ардуине большое количество разнообразных датчиков? (>50?)

Если это датчики типа такого, то сходу тремя простыми проводами их десятки подключить можно. Если датчики с простыми выходами типа контактов или с логическими уровнями, то можно с помощью микросхем-мультиплексоров уменьшить количество используемых ножек Arduino, например 7 выводов адреса + 1 ввод сигнала позволят опросить больше сотни (128) простых датчиков.

monomnmn пише:

3) Как лучше реализовать мониторинг счетчиков? Веб камера или...

Если у счётчиков есть импульсный выход, то можно считать имульсы и переводить в показатели потребления. Для некоторых счётчиков даже есть фирменные накладки для облегчения задачи. См. https://geektimes.ru/post/254968/ . Или с камерой https://habrahabr.ru/post/220869/

monomnmn пише:

4) Есть какие - нибудь ограничения на длину проводов от Ардуино до датчиков или реле?

Да, десятки метров наверное могут чему-то помешать. Но есть, например, последовательный порт можно удлиннить на физическом уровне через RS-485 или даже через CAN связать несколько узлов домашней автоматизации.

monomnmn пише:

5) Могут быть аппаратные сбои? Если все правильно запрограммировать, все будет ок?

Могут, ведь даже Windows иногда зависает. Спасёт Watchdog, народ пишет например вот: https://geektimes.ru/post/255800/

Підвал форуму