1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Огромная просьба, при создании новой темы прописывайте ключевые слова, которые отражают смысл темы. Это поможет быстро находить информацию на форуме. Спасибо!
    Скрыть объявление
  3. Пишите в подпись или в календарь варок, какое пиво у вас сейчас готовится, так легче дать четкий ответ или совет.
    Скрыть объявление
  4. Если Вам нравится наш сайт, форум и интернет-магазин, пожалуйста, поделитесь ссылкой в соц сетях и в соц закладках. Тем самым нас станет больше :) Спасибо!
     
    Скрыть объявление
  5. Любое общение, которое не по-теме ПРОШУ переносить в чат.
    Скрыть объявление
  6. При приеме пива у мужчин выделяется гормон дофамин, отвечающий за чувство удовлетворения. При этом удовольствие вызывает только вкус пива, независимо от того, любит ли мужчина напитки этой марки, и даже при отсутствии алкоголя.
    Скрыть объявление
  7. Пиво богато антиоксидантами, которые приходят из хмеля и солода, из которых оно состоит. Эти антиоксиданты предотвратят рак.
    Скрыть объявление
  8. Пиво содержит витамин В, который помогает нам поддерживать здоровую кожу, нужный мышечный тонус, борется с заболеваниями сердечно-сосудистой и иммунной системы.
    Скрыть объявление
  9. Кофе оказывает воздействие на преждевременное старение человека и способствует развитию онкозаболеваний. Пиво же наоборот защищает ДНК.
    Скрыть объявление
  10. Пиво может оказать положительное действие при сердечно-сосудистых заболеваниях и служить средством их профилактики
    Скрыть объявление
  11. В случае, если Вы не знаете в какую тему форума обратится с конкретным вопросом - просьба уточнить в чате этот момент, Вам будут предложены подходящие разделы, в которых Вы сможете задать свой вопрос, либо найти ответ на него, если такой вопрос уже поднимался на обсуждение.
    Скрыть объявление
  12. Уважаемые пивовары, при прочтении информации на форуме (оставленной другими форумчанами) с давними датами, просьба не принимать советы, как четкую инструкцию, т.к. описывается чей-то личный опыт, и зачастую эти пивовары в дальнейшем осознав неверность таких методов делают все по другом. Так что принимайте это просто, как информацию, как повествование о чужом опыте, и в случае необходимости переспрашивайте!
    Скрыть объявление
  13. Уважаемы пивовары и модераторы форума! При создании темы, убедительная просьба добавлять Ключевые слова. Данная функция позволяет новичкам форума быстро находить нужную информацию по Облаку тэгов справа. Просьба к модераторам форума, так же помочь и по возможности прописать в существующих темах ключевые слова внизу страницы. Спасибо! С уважением, администрация форума.
    Скрыть объявление
  14. Уважаемый пользователь Гость, просьба быть внимательнее, и следить за своими сообщениями - все сообщения в спец. темах (все разделы форума кроме "флэйм, флуд, оффтопик") не соответствующие по смыслу той теме в которой были написаны - будут удалены без предупреждения (даже если несут в себе ценную информацию, но при этом написаны "не там где стоило"). Форум растет - содержать его "в чистоте" становиться сложнее, просим не усложнять труд модератора. Если Вы в растерянности по поводу поиска нужной темы – этот момент можно уточнить в чате Надеемся на понимание, с ув, администрация форума.
    Скрыть объявление
  15. УБЕДИТЕЛЬНАЯ ПРОСЬБА!!! Покинуть личные переписки, которые не актуальные для вас и не имеют информационной ценности! СПАСИБО
    Скрыть объявление
Скрыть объявление
C 10.09.2016 на форуме стали платными следующие разделы:
Оборудование для пивоварения, Делаем пиво по рецептам
Подробнее, почему так произошло, можно прочитать здесь...
Скрыть объявление
Набираем модераторов, которые хотят принять участие в развитии форума и сделать его более интересным и информативным. Основные требования к претендентам - регистрация на форуме более 1 года, сообщений не менее 400. Основные функции модератора - чистка флуда и рекламы, перенос сообщений или тем в соответствии с разделами форума, слежение за правилами разделов. Дополнительные - развитие и оптимизация функционала форума, добавление интересного материала из вне форума. Преимущества - VIP статус, помощь в деле, которое вам не без различно, скидка в магазине ингредиентов 5%. Заявки можно оставлять здесь.

Электроника для дистилляции, Электронные приблуды.

Тема в разделе "Экспериментальные дистилляторы", создана пользователем Тимоха, 1 фев 2017.

  1. Тимоха

    Тимоха Дистилляторщик Команда форума

    Сообщения:
    3.499
    Симпатии:
    517
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.846 / 184 / -6
    Я делаю:
    самогон, настойки
    я подожду до вечера.
    Но пока могу сообщить, что при попытке модифицировать скетч "blink" - выставить значение 500 мс вместо 1000 мс программа после компилирования выдает ошибку на загрузке.
     
  2. GremLine

    GremLine Пивовед

    Сообщения:
    2.884
    Симпатии:
    685
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.612 / 285 / -12
    Я делаю:
    самогон
    Количество варок:
    20
    В смысле, со значением 1000 работает, а с 500 не хочет? Странно.
    Там есть кнопочка "с птичкой" - типа проверить. А рядом кнопка - "загрузить".
    Если просто проверить - проходит без ошибок?
    Когда загружаешь - не забыл саму ардуинку к компу подоткнуть?
    Попробуй выдернуть и опять воткнуть...

    Ты работаешь с "голой" ардуино, ничего к ней не подцеплял?
     
  3. Тимоха

    Тимоха Дистилляторщик Команда форума

    Сообщения:
    3.499
    Симпатии:
    517
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.846 / 184 / -6
    Я делаю:
    самогон, настойки
    сейчас вот: подключил адуину;
    горит светодиод GND, мигает L
    запускаю программу arduino 1.8.1.
    в ней открывается скетч "blink"? жму "проверить"
    Пишет:
    "компиляция завершена"
    на черном выводит:
    "Скетч использует 928 байт (2%) памяти устройства. Всего доступно 32256 байт.
    Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт"

    Счас значения попробую поменять
    --- Последние сообщения соединены, 17 фев 2017, Дата первоначального сообщения: 17 фев 2017 ---
    Пока голая
     
  4. Тимоха

    Тимоха Дистилляторщик Команда форума

    Сообщения:
    3.499
    Симпатии:
    517
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.846 / 184 / -6
    Я делаю:
    самогон, настойки
    поменял значения:
    digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
    delay(500); // wait for a second
    digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
    delay(500);
    Ткнул "проверить":
    Пишет:
    "компиляция завершена"
    В черном окне выводит:
    "Скетч использует 928 байт (2%) памяти устройства. Всего доступно 32256 байт.
    Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.
    "
    жмем "загрузить"
    выводит, предварительно повисев путем:
    "проблема загрузки в плату"
    на черном выводит уже не белым, а красным:
    "
    Скетч использует 928 байт (2%) памяти устройства. Всего доступно 32256 байт.
    Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x60
    Проблема загрузки в плату. Помощь по загрузке:

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

    .
    "
     
    • Дружелюбно Дружелюбно x 1
  5. GremLine

    GremLine Пивовед

    Сообщения:
    2.884
    Симпатии:
    685
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.612 / 285 / -12
    Я делаю:
    самогон
    Количество варок:
    20
    Не понял, откуда взялся сам скетч Blink?
    Когда открываешь программу Arduino выскакивает пустой скетч вот такого вида:
    void setup() {
    // put your setup code here, to run once:

    }

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

    }
    Это две процедуры. Процедура setup и процедура loop.
    Процедура setup вызывается однократно в самом начале работы устройства. В ней нужно настроить входы/выходы так, как хотим их использовать.
    В примере blink настройка сводится к одной команде
    pinMode(LED_BUILTIN, OUTPUT);
    это значит, что ножка, к которой подключен встроенный на плате светодиод (pin13), настраивается как выход.

    Процедура loop (петля по аглицки) , будет вызываться постоянно. Т.е. как только закончится - сразу еще раз запустится.
    Поэтому, когда выдается команда digitalWrite(LED_BUILTIN, HIGH);
    Это приводит к тому, что на ножке 13 (к которой подключен внутренний светодиод) выставляется высокий уровень (светодиод зажигается).
    Еогда выдается команда digitalWrite(LED_BUILTIN, LOW);
    на этой ножке будет низкий уровень и светодиод покаснет.
    Команда delay(1000) просто задерживает выполнение программы на 1000 мсек - на одну секунду.
    Циклическое выполнение процедуры loop заставит светодиод зажигаться на секунду, а потом на секунду гаснуть.
    Но я так поняд, что ты и без меня в этом разобрался...

    Я не понимаю, почему у тебя не загружается подправленный скетч...
    А если повторно загрузить изначальный скетч, с которым работает - ошибки нет?
     
  6. Тимоха

    Тимоха Дистилляторщик Команда форума

    Сообщения:
    3.499
    Симпатии:
    517
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.846 / 184 / -6
    Я делаю:
    самогон, настойки
    Есть
    Arduino: 1.8.1 (Windows XP), Плата:"Arduino/Genuino Uno"

    Скетч использует 928 байт (2%) памяти устройства. Всего доступно 32256 байт.
    Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x60
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x60
    Проблема загрузки в плату. Помощь по загрузке:

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

    .

    Этот отчёт будет иметь больше информации с
    включенной опцией Файл -> Настройки ->
    "Показать подробный вывод во время компиляции"
     
  7. Тимоха

    Тимоха Дистилляторщик Команда форума

    Сообщения:
    3.499
    Симпатии:
    517
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.846 / 184 / -6
    Я делаю:
    самогон, настойки
    Он не может загрузить. Не может через СОМ1 , который сам выбрал.
    Драйвер лег на СОМ3, я поменял порт СОМ1 на СОМ3 все заработало, загрузка прошла светодиод замигал медленнее (Я же время сократил с 1000мс до 500 мс) :))))
    --- Последние сообщения соединены, 17 фев 2017, Дата первоначального сообщения: 17 фев 2017 ---
    Так было сразу, потом я уже пытался скетч модернизировать. Стал сразу загружаться он "блинк" вместо пустого.
    --- Последние сообщения соединены, 17 фев 2017 ---
    Интуитивно, в очень общих чертах, по верхушкам прочитанного. Можно считать, что не разобрался. Углыбиватися надоть.
     
  8. Тимоха

    Тимоха Дистилляторщик Команда форума

    Сообщения:
    3.499
    Симпатии:
    517
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.846 / 184 / -6
    Я делаю:
    самогон, настойки
    увеличил время до 1000 мс, перезагрузил, теперь нормально мигает, просто видно заводские настройки были где то около 100мс - он сразу очень часто мигал.
    Теперь уже стал управляем. :3
     
    • Оптимистично Оптимистично x 1
  9. asmel

    asmel Старший Пивовар VIP

    Сообщения:
    669
    Симпатии:
    174
    Баллы:
    152
    Пол:
    Мужской
    Оценки:
    +626 / 28 / -6
    GremLine насколько сложно, и если возможно, самому организовать связь с платой Ардуино и РС через WiFi
     
  10. GremLine

    GremLine Пивовед

    Сообщения:
    2.884
    Симпатии:
    685
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.612 / 285 / -12
    Я делаю:
    самогон
    Количество варок:
    20
    Ну да, было у меня подозрение, что не на то настроил.
    Мало того, имей в виду - если втыкать ардуино в разные разъемы USB компа, драйвер может назначать разные номера СОМ.
    Вообще-то, если время сократить, то должно быстрее моргать. :)
    Можно теперь написать простую программу, чтобы светодиод моргал азбукой Морзе сообщение "SOS".
    Три коротких-три длинных-три коротких-пауза...
    Думаю, ты уже сообразил, как заставить его сделать такое. Если интересно, могу рассказать, как эту программу написать "красивее" и проще.
     
    • Дружелюбно Дружелюбно x 1
  11. GremLine

    GremLine Пивовед

    Сообщения:
    2.884
    Симпатии:
    685
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.612 / 285 / -12
    Я делаю:
    самогон
    Количество варок:
    20
    Да можно, конечно. Я сам таким не занимался, но есть модули для этого.
    [​IMG]
    Единственно, проблема в том, что Ардуино бывают с напряжением питания 5 В и 3,6 В. Уровни логических сигналов у них тоже различны. WiFi-модули тоже бывают разные. Надо подбирать одно к другому, чтобы не городить согласователей.
    А проще всего найти отработанный проект и повторить с модификациями под себя.

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

    , как сделать дистанционный датчик температуры.
     
    • Информативно Информативно x 1
  12. asmel

    asmel Старший Пивовар VIP

    Сообщения:
    669
    Симпатии:
    174
    Баллы:
    152
    Пол:
    Мужской
    Оценки:
    +626 / 28 / -6
    Спасибо! Насколько я на данный момент понимаю, система с ардуино такая - покупаешь основной блок UNO, на него при помощи стандартных ножек можно навешивать всевозможные шилды, как то: шилда с блоком постоянной памяти, шилда с разъемами для подключения различных датчиков, шилда, обеспечивающая WiFi и т п.
    По беспроводной связи - куда лучше ткнуться в WiFi или в Блютуз.
     
    • Оптимистично Оптимистично x 1
  13. Тимоха

    Тимоха Дистилляторщик Команда форума

    Сообщения:
    3.499
    Симпатии:
    517
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.846 / 184 / -6
    Я делаю:
    самогон, настойки
    Светодиод вначале мигал часто, потом, когда удалось установить 500 мс задержки, он стал мигать медленнее,
    Циклы на три коротких , три длинных?
    Я ведь совершенно не знаю языка Ардуино. Где посмотреть на этот самый, понятный Ардуино язык?
     
    • Оптимистично Оптимистично x 1
  14. GremLine

    GremLine Пивовед

    Сообщения:
    2.884
    Симпатии:
    685
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.612 / 285 / -12
    Я делаю:
    самогон
    Количество варок:
    20
    В принципе - так. Только не всегда это шилда. Многие устройства нужно подключать проводами - разъемы не такие, как на плате ардуино. Многие делают это с помощью макетной платы, но это "на соплях" получается. Любой проводок может выпасть или не дай бог не туда воткнуть - можно сжечь.
    Есть универсальные шилды, на них просто разъемы и много металлизированных отверстий. Можно на ней впаять то, что нужно и соединить пайкой проводами с ножками разъемов. Тогда будет более-менее надежно и можно в корпус засунуть.
    [​IMG]
    Вот в этой плассмассовая макетка просто валяется сверху. А под ней отверстия, куда можно впаять что-то.

    По поводу того, что лучше WiFi или блютуз - опять-же, смотря для чего. Наверное, WiFi поуниверсальнее будет...
    --- Последние сообщения соединены, 18 фев 2017, Дата первоначального сообщения: 18 фев 2017 ---
    Вообще-то это стандартный язык "Си".
    P.S.: Сейчас зарядил свою колонну на второй перегон кукурузы на кодзи, так что все бегаю смотреть :)
     
    • Полезно Полезно x 1
    • Креативно Креативно x 1
  15. GremLine

    GremLine Пивовед

    Сообщения:
    2.884
    Симпатии:
    685
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.612 / 285 / -12
    Я делаю:
    самогон
    Количество варок:
    20
    Можно организовать и циклы. Но тут надо смотреть, что проще, цикл на три раза, или три одинаковых куска линейного кода.
    Три моргания светодиода можно записать линейно:
    А можно в виде цикла:
    (все, что записано в строке после двух прямых слэшей "//" является комментарием и компилятором игнороруется)
    Еще можно оформить вывод каждой буквы в виде отдельной процедуры. В слове SOS три буквы, две из них одинаковые, значит потребуется только две процедуры для вывода слова SOS.
    Имея процедуры на каждую букву алфавита можно выводить азбукой морзе любые текстовые сообщения :)
     
    • Информативно Информативно x 1
    • Полезно Полезно x 1
  16. GremLine

    GremLine Пивовед

    Сообщения:
    2.884
    Симпатии:
    685
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.612 / 285 / -12
    Я делаю:
    самогон
    Количество варок:
    20
    В нашем примере цикл записан так:
    for (i=0; i<3; i++)
    Что это означает? в скобках заданы три операции, разделенные символом ";"
    Первая операция - это то, что нужно сделать перед началом цикла: i=0 - переменной i присваивается нулевое значение.
    Вторая - это условие при котором цикл будет повторяться: i < 3 - как только переменная i станет равна 3 или больше, цикл закончится.
    Третья операция - это что нужно делать после каждого выполнения тела цикла: i++ - эта запись означает увеличить значение переменной i на единицу.
    Таким образом, цикл будет выполнен три раза. Переменная i будет внутри цикла изменять значение при каждом проходе.
    Значения переменной будут 0, 1, 2.
    С таким же успехом можно записать цикл:
    for(i=0;i<1000;i++)
    Такой цикл будет выполняться ровно тысячу раз!
    Имейте в виду, что тело цикла (те команды, которые нужно выполнить циклически) обязательно нужно поместить в фигурные скобки!
    Если фигурных скобок нет, то компилятор посчитает, что тело цикла состоит из одной единственной команды - первой после описания цикла.
     
    Последнее редактирование: 18 фев 2017
    • Информативно Информативно x 1
    • Полезно Полезно x 1
  17. GremLine

    GremLine Пивовед

    Сообщения:
    2.884
    Симпатии:
    685
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.612 / 285 / -12
    Я делаю:
    самогон
    Количество варок:
    20
    Давайте рассмотрим, что вообще представляет из себя программа, написанная на языке программирования (например, на С):
    Вся программа состоит из операторов, которые выполняются друг за другом, слева направо и сверху вниз. Точно так же как мы читаем слова в тексте. После оператора обычно ставится символ ";".
    Принято каждый оператор писать в отдельной строке, но можно и несколько штук писать в одной строке. Длинный оператор можно писать в несколько строк.
    Что такое оператор? Это некоторое действие, которое нужно выполнить.
    Оператор присваивания просто присваивает значение одной переменной другой переменной, или числу.
    Присваивание производится всегда справа налево!
    Например, оператор вида
    X = Y;
    означает, что переменная X получит такое же значение, какое имеет переменная Y. Можно записать и более сложное действие:
    X = (Y + 2) / 4 + 10*Z;
    В этом случае сперва будет сосчитано арифметическое выражение справа, а затем результат будет помещен в переменную слева от знака равенства. Например, если переменная Y содержит значение 2, а переменная Z содержит значение 7, то результат будет (2+2)/4 + 10*7.
    В итоге, переменная X после выполнения этого оператора получит значение 71.
    Выражение может быт сколь угодно сложным, со скобками и с любым числом переменных.
    Надо только помнить, что прежде чем использовать какую то переменную, нужно ее объявить.
    Чтобы объявить переменную, нужно записать строку вида [тип] [имя переменной].
    Например, если мы хотим объявить целочисленную переменную, то можно записать строку:
    int myVariable;
    int - это целочисленный тип ( integer - целый по аглицки).
    Имя переменной можно дать любое, но только английскими буквами и цифрами, причем первой должна быть буква.
    Можно при объявлении переменной сразу же задать ей нужное значение:
    int myVariable = 1243;
    В языке С существует много разных стандартных типов, можно создавать и свои собственные типы... но про это можно рассказывать бесконечно :)
    Обычно для задач управления можно обойтись типом int. Нужно помнить, что в переменную этого типа можно записать целые числа в диапазоне от -32768 до +32767. Такая переменная займет два байта оперативной памяти.
    Переменная типа char занимает всего один байт, но в нее можно записать только число в диапазоне от - 128 до +127.
    если перед названием типа записать слово unsigned, то переменная будет беззнаковой - всегда положительные значения.
    диапазон переменной типа unsigned char от 0 до 255, а переменной unsigned int от 0 до 65535.
    Еще есть тип long int ( и unsigned long int) переменная такого типа займет 4 байта. Диапазон у нее гораздо больше - около 4 миллиардов.
    Надо помнить, что микроконтроллер умеет быстро работать с переменными размером в один байт. С более сложными переменными ему приходится делать вычисления "в столбик", а это может замедлить процесс вычислений.
     
    • Информативно Информативно x 1
  18. GremLine

    GremLine Пивовед

    Сообщения:
    2.884
    Симпатии:
    685
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.612 / 285 / -12
    Я делаю:
    самогон
    Количество варок:
    20
    Операторы бывают не только арифметическими. Это может быть просто вызов стандартной процедуры.
    Так, оператор delay(1000) вызывает библиотечную процедуру задержки выполнения на заданное время. В скобках записывается параметр процедуры. Так, процедура delay имеет всего один параметр - время задержки в миллисекундах.
    Другая процедура из примера со светодиодом - это digitalWrite. это процедура обслуживания контактов на разъеме ардуино. Она позволяет установить на контакте одно из двух значений - высокое или низкое.
    Процедура эта имеет два параметра - первый говорит ей, какой именно контакт имеется в виду, а второй параметр - какое именно значение требуется выставить.
    Что означает, когда мы вместо значений пишем какие-то слова, LED_BUILDIN и HIGH ?
    Просто это константы, которые знает компилятор. Например, когда мы работаем с ARDUINO UNO, то компилятор знает, что внутренний светодиод подключен к его 13 ножке, а высокий уровень для него означает запись 1. Для других моделей ардуино может быть по другому. Мы могли бы вместо этих констант явно записать digitalWrite(13,1). И это на нашей ардуино будет делать то же самое.
    Но такой скетч не заработает на другой модели ардуино, в которой светодиод подключен на другую ножку...
    Процедура может не только получать параметры от Вашей программы, но и возвращать значение.
    Например, если мы настроили ножку, как вход, то можно опросить состояние этого входа процедурой digitalRead.
    Для этого процедуру нужно поместить в правую часть оператора присваивания:
    myValue = digitalRead(12);
    переменная myValue получит значение 0 или 1 в зависимости от уровня сигнала на ножке 12.
     
    • Информативно Информативно x 1
  19. GremLine

    GremLine Пивовед

    Сообщения:
    2.884
    Симпатии:
    685
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +2.612 / 285 / -12
    Я делаю:
    самогон
    Количество варок:
    20
    Маленькое замечание:
    иногда, для простого смертного, не являющегося программистом, простой оператор присваивания может попросту взорвать мозг :)
    Например, как понимать такой оператор:
    X = X + 1;
    Это может показаться полным бредом - никогда не может X быть равен X+1! Какое значение не подставляй!
    Но помните, в программе это не уравнение - это присваивание!
    Как я уже говорил, сперва вычисляется выражение справа от знака равенства, а потом результат присваивается переменной слева.
    Таким образом, такой оператор означает, что после его выполнения значение переменной X просто увеличится на единицу.
    Можно написать, например, такой оператор:
    X = X -Y;
    и это значит, что значение переменной X уменьшится на величину, записанную в переменной Y.
    При этом изменится только значение переменной X, а значение переменной Y останется неизменным.
    В языке С существует ряд упрощений для тех, кому лень тыкать на клавиши. Например, вместо
    X = X + 10;
    Можно записать
    X += 10;
    Это означает то же самое действие - увеличить на 10 значение переменной X.
    Можно использовать знак [действие]= для всех четырех арифметических действий: "+","-","*" или "/".
    Например:
    Teta /= 105;
    или
    Alpha *= 4;

    Слева от знака равенства должна быть только переменная. Никаких арифметических действий там быть не должно.
    Например, если запишем такое:
    X+7 = 1;
    То компилятор выдаст в этой строке ошибку!
     
    • Информативно Информативно x 1
  20. nanobeer

    nanobeer Старший дистилляторщик Команда форума Модератор

    Сообщения:
    8.820
    Симпатии:
    1.306
    Баллы:
    277
    Пол:
    Мужской
    Оценки:
    +4.676 / 195 / -26
    Карта пивоваров:
    Toronto, Канада
    Я делаю:
    вино, настойки, другие напитки
    Количество варок:
    25
    Больше примеров!
    :rulez:
     
Похожие темы
  1. nanobeer
    Ответов:
    321
    Просмотров:
    45.304
  2. Charllie
    Ответов:
    0
    Просмотров:
    7.364
Загрузка...
Загрузка...