Ардуинки, ESP, программирование
93 subscribers
51 photos
8 videos
5 files
15 links
Канал о программировании и вообще об электронике

Вот наш чат: https://yangx.top/arduinki_esp_chat
加入频道
А сейчас внеплановый выпуск про esp-01. Просто столкнулся с проблемами, починил и решил поделиться решением этих проблем. Обзора платы сейчас не будет!
Чтобы использовать еспшки, надо установить специальное дополнение к ардуино иде — ядро. Это делается просто: сначала надо зайти в настройки(файл->настройки ИЛИ ctrl+,) и в дополнительные ссылки вставляем https://arduino.esp8266.com/stable/package_esp8266com_index.json, потом уже переходим в инструменты->плата->менеджер плат, в появившемся окне пишем esp8266, выбираем версию 2.7.2 и нажимаем установить. Это не всё. Потом обязательно надо зайти по пути C:\Users\имяпользователя\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.2\tools\pyserial\serial\serialwin32.py и в начале 219, 220, 221 и 222 строки поставить #. Чтобы прошивать esp-01, надо замкнуть её ногу io0 на gnd. Это решается припаянной на программаторе перемычкой (фотография потом будет). Дальше надо установить настройки так, как будет на следующей фотографии, которая тоже будет потом. После этого всё должно заработать!
#espшки
#платки
#ардуиноиде
#уроки
👍2
Ардуинки, ESP, программирование
А потом будем разбираться с переменными
Наконец-то дошли руки написать этот пост. Очень сильно проще показать всё на картинке. В следующем сообщении будет пример программы + типы данных
П. С. Надеюсь кто-нибудь поймёт мой почерк)
#начало
#уроки
👍3
Ардуинки, ESP, программирование
Наконец-то дошли руки написать этот пост. Очень сильно проще показать всё на картинке. В следующем сообщении будет пример программы + типы данных П. С. Надеюсь кто-нибудь поймёт мой почерк) #начало #уроки
Перед примером программы надо кое-что ещё уточнить. С переменными работают почти все математические операции(корень и степень записываются подругому). Чтобы не писать a = a + 1;
Можно написать а += 1. Ещё есть особенный оператор — %. Это остаток от деления. Например 5%2=1 , 8%3=2 , 123%100=23.

Чтобы вывести на экран переменную или какой-нибудь текст, надо написать
Serial.print("ваш текст");
ВАЖНЫЕ ДОПОЛНЕНИЯ: 1.чтобы вывести число или переменную, кавычки НЕ нужны. Для текста они обязательны!
2.этим способом весь текст выводится в одну строку, это неудобно. Если не надо выводить что-то типа
Значение 1: 1234
то лучше заменить print на println. Это выведет в столбик. 3.чтобы всё это работало, внутри {} скобок void setup надо написать Serial.begin(9600);
Это инициализация uart'а.
А сейчас программа...
#начало
#уроки
👍2
Спецвыпуск!
У некоторых плат с еспшками стоит другой юсб-юарт преобразователь (не CH340, а CP2102). И на него нужен другой драйвер — вот ссылка на офф. сайт. Чтобы скачать, заходим туда и ищем драйвер под свою ос, потом тыкаем, а дальше всё как обычно. После установки можно подключить плату и посмотреть в диспетчере устройств, отобразилась она или нет.

#espшки
#уроки
👍3🐳1
Для всего следующего, сначала надо понять, как работает макетная плата(макетка). На первой картинке её изображение, на второй показано, как соединены контакты

#начало
#уроки
Перед тем, как будет обзор железок, надо ещё кое-что рассказать. У ардуины есть 2 вида ног: цифровые и аналоговые. Почти все ноги могут быть входом и выходом сигнала. У обычных avr'ок нет ЦАПа, т.е. они не могут выдавать аналоговый сигнал. Только 0 и 1. Но есть ШИМ, и он позволяет плавно управлять яркостью, скоростью и т.д. У есп есть и ЦАП, и ШИМ. У всех обычных микроконтроллеров есть АЦП, которое преобразовывает аналоговый сигнал в цифровой. Ну и есть цифровой вход/выход. 0 или 1, 0В или 5В. Вот функции для управления этим всем на AVR :
Цифр. выход: digitalWrite(пин, значение)
Цифр. вход: digitalRead(пин)
Аналоговый вход: analogRead(пин)
ШИМ: analogWrite(пин, значение от 0 до 255)
Скоро будет остальное. И проекты!

#начало
#уроки
👍2
Сначала расскажу про потенциометр. Это резистор, сопротивлением которого можно управлять. К ардуинке он подключается просто: одна крайняя нога на gnd, другая на 5в, а средняя на аналоговую ногу ардуины(А0, А1, А2 и т.д.). Прошивка для проверки этого всего тоже простая:
#define POT_PIN A0 // пин потенциометра
void setup() {
Serial.begin(9600); // настраиваем порт
pinMode(POT_PIN, 0); // настраиваем пин
}
void loop() {
// таймер на миллисе
static uint32_t tmr;
if(millis() - tmr >= 150) {
tmr = millis();
Serial.println(analogRead(POT_PIN)); // вывод в порт
}
}
Тут в порт выводятся числа от 0 до 1024, это значение с АЦП. Ещё можно открыть плоттер(ctrl+shif+l или через инструменты).
#начало
#уроки

П. С. Дополнение: в pinMode 0 можно поменять на INPUT, это то же самое
👍1
А теперь кнопки. Обычно у них 4 ноги, но они попарно соединены. Остаётся 2 контакта. Кнопку можно подключать по разному. Обычно одна нога идёт на пин, вторая на gnd или 5В. Если на 5В, то к пину надо подключить резистор(обычно на 10 или 4,7 кОм). Вот прошивка без библиотеки:
#define BTN 3  // кнопка на д3
void setup() {
Serial.begin(9600); // настройка порта
pinMode(BTN, 2); // настройка пина на подтяжку к +
}
void loop() {
static bool flg; // флаг состояния кнопки
bool s = !digitalRead(BTN); // текущее состояние кнопки
if (s && !flg) { // кнопка нажата
flg = true;
Serial.println("Click");
}
if (!s && flg) { // кнопка отпущена
flg = false;
Serial.println("Relase");
}
}

Это минимальная обработка нажатия, в которой нет антидребезга. Все не сенсорные кнопки дребезжат, т.е. нажатие происходит не сразу, т.е. на ардуину приходит много 0 и 1. Из-за этого будут ложные срабатывания. Потом пришлю прошивку с антидребезгом

#начало
#уроки
👍2
А сейчас датчики. Они бывают простыми и сложными. Простые выдают цифровой(0 и 1, 0В и 5В(3,3В)) или аналоговый. А сложные связываются с ардуиной с помощью интерфейсов(I2C, I2S, UART, SPI и т.д.). Простые датчики могут работать и без микроконтроллера.
У простых цифровых или только аналоговых датчиков три ноги — gnd(-, знак земли), out(a0 или d0) и 5v(3,3v, vcc, +). Out подключается к любой ноге если датчик цифровой и к аналоговой, если аналоговый. Ещё есть простые цифроаналоговые датчики, у них 4 ноги — gnd, 5v, d0(цифровой) и a0(аналоговый). Подключать и a0, и d0 не обязательно. Прошивку для простых датчиков присылать не буду. Для аналоговых подойдёт прошивка потенциометра, а для цифровых там же можно заменить analogRead на digitalRead.
А со сложными датчиками всё сложнее. Потом будем разбирать самые популярные.
А потом пришлю фотографии разных датчиков.

#начало
#железки
А ещё я ввожу новый хэштег #уроки