А теперь коротко про циклы.
Иногда бывает надо сделать много ± одинаковых команд. Чтобы не писать каждую вручную, есть циклы. Они бывают 3 видов, но обычно используют два.
1. Цикл while
В скобках пишется любое выражение. Проще говоря, это иф, но пока выражение ==1, он циклично выполняется.
ВНИМАНИЕ: если значение в скобках не меняется и не станет равным 0, цикл не завершится!!!
2. Цикл for
Тут в скобках есть три части, которые разделяются ;
(объявление переменной; условие выполнения; изменение переменной)
Всё части необязательны, но ; должны быть. Например
(;i < 10;)
Внимание: если используется переменная, она должна быть объявлена!
3. Цикл do
Этот цикл почти while, но выполнится 1 раз даже если выражение в скобках изначально == 0.
Кстати ещё напишу про операторы:
>, < тут понятно
>= больше или равно
<= меньше или равно
++ плюс 1
-- минус 1
Дополнение:
a++ — к а просто прибавится 1 и вернётся старое значение
++a — к а прибавится 1 и вернётся новое значение
Скоро (наверное) выйдет большой урок про сервер на есп!
#начало
#уроки
Иногда бывает надо сделать много ± одинаковых команд. Чтобы не писать каждую вручную, есть циклы. Они бывают 3 видов, но обычно используют два.
1. Цикл while
bool s = 1; // есть переменная
while (s) { // пока она ==1
s = digitalRead(3); // считывать её значение
}
В скобках пишется любое выражение. Проще говоря, это иф, но пока выражение ==1, он циклично выполняется.
ВНИМАНИЕ: если значение в скобках не меняется и не станет равным 0, цикл не завершится!!!
2. Цикл for
for (int i = 0; i < 10; i++) {
// тут можно что-то делать
}
Тут в скобках есть три части, которые разделяются ;
(объявление переменной; условие выполнения; изменение переменной)
Всё части необязательны, но ; должны быть. Например
(;i < 10;)
Внимание: если используется переменная, она должна быть объявлена!
3. Цикл do
bool s = 0;
do {
s = digitalRead(3);
} while(s);
Этот цикл почти while, но выполнится 1 раз даже если выражение в скобках изначально == 0.
Кстати ещё напишу про операторы:
>, < тут понятно
>= больше или равно
<= меньше или равно
++ плюс 1
-- минус 1
Дополнение:
a++ — к а просто прибавится 1 и вернётся старое значение
++a — к а прибавится 1 и вернётся новое значение
Скоро (наверное) выйдет большой урок про сервер на есп!
#начало
#уроки
А сегодня коротко про библиотеки.
Иногда в проекте используются сторонние железки, работать с которыми сложно, или другие сложные штуки(вифи, веб интерфейс и другое). К счастью, хорошие люди написали всё это за нас. Нам остаётся скачать файл и подключить. Скачивается разными способами:
1. Автоматически. Надо зайти в менеджер библиотек (ctrl + shift + i), написать название и нажать скачать.
2. Вручную. Скачивается архив и распаковывается в
C:\Program Files(документы)\Arduino\libraries
Или можно в приложении нажать добавить .zip библиотеку
В прошивке это выглядит так:
П. С. Много хороших библиотек написал Гайвер. В поиске менеджера библиотек можно написать Gyver и посмотреть. Ещё можно посмотреть на сайте Гайвера.
П. П. С. Библиотеки можно делать самим, но это уже совсем другая история
#уроки
#ардуиноиде
#начало
Иногда в проекте используются сторонние железки, работать с которыми сложно, или другие сложные штуки(вифи, веб интерфейс и другое). К счастью, хорошие люди написали всё это за нас. Нам остаётся скачать файл и подключить. Скачивается разными способами:
1. Автоматически. Надо зайти в менеджер библиотек (ctrl + shift + i), написать название и нажать скачать.
2. Вручную. Скачивается архив и распаковывается в
C:\Program Files(документы)\Arduino\libraries
Или можно в приложении нажать добавить .zip библиотеку
В прошивке это выглядит так:
#include <GyverHub.h> // в скобках пишется название библиотеки и в конце .h Компилятор ищет библиотеку в папке с библиотеками
#include "testlib.h" // если в кавычках — сначала компилятор ищет библиотеку в папке с проектом, а потом в папке с библиотеками
П. С. Много хороших библиотек написал Гайвер. В поиске менеджера библиотек можно написать Gyver и посмотреть. Ещё можно посмотреть на сайте Гайвера.
П. П. С. Библиотеки можно делать самим, но это уже совсем другая история
#уроки
#ардуиноиде
#начало
Arduino15 channel
Завтра будет вторая
Чёт я забыл про неё ну ладно вот схема с голым фоторезистором.
П. С резистор на 10кОм
П. С резистор на 10кОм
А сейчас вы узнаете как использовать 2 ядра есп32 одновременно и зачем это + как прошить еспшку, если она не шьётся.
1. Иногда проект получается сложный криво работает. Возможно это из-за того, что не хватает частоты процессора. Поэтому отваливается вайфай и всё работает медленно. В таком случае можно использовать оба ядра (у есп32 их 2). Делается это так:
Кстати всё изначально запускается на 1 ядре (втором. Нумерация с 0)
2. Еспшка может не прошиваться по нескольким причинам. Не тот юсб порт, нет драйверов, плохой кабель, проблемы с памятью и др.
Первые три пункта уже объяснялись на канале. А вот с памятью всё сложнее. Надо выбрать порт, открыть монитор порта, поставить скорость 115200 и нажать ресет на еспшке. В порт пришлётся много информации. Надо найти что-то типа 1)DIO/QIO/DOUT и 2)80MHz/40MHz. Потом зайти в инструменты, в flash mode поставить из 1), а в flash frequency из 2). И ещё. Чтобы прошить еспшку, надо зажать кнопку boot и кликнуть по reset. Потом можно прошивать
#espшки
#вифи
#ардуиноиде
#уроки
1. Иногда проект получается сложный криво работает. Возможно это из-за того, что не хватает частоты процессора. Поэтому отваливается вайфай и всё работает медленно. В таком случае можно использовать оба ядра (у есп32 их 2). Делается это так:
#define LED1 22 // пин диода
#include "soc/timer_group_reg.h" // так надо
#include "soc/timer_group_struct.h"
TaskHandle_t Task0; // задача
void setup() {
//pinMode(LED1, OUTPUT);
Serial.begin(115200); // вкл юарт
Serial.println(); // новая строка
// функция имя стёк* ? ? задача ядро
xTaskCreatePinnedToCore(core0, "Task0", 10000, NULL, 1, &Task0, 0); // подкл. задачу
// * - но это не точно
}
void loop() {
static uint32_t tmr = millis(); // таймер на миллисе
if (millis() - tmr >= 1000) {
tmr = millis();
Serial.println(millis() / 1000); // вывести время в секундах с запуска
}
}
// функция
void core0(void *p) {
pinMode(LED1, OUTPUT); // пин диода на выход
static bool flag; // флаг состояния
static uint32_t tmr2; // для таймера на миллисе
for (;;) { // вечно крутиться
if (millis() - tmr2 >= 500) { // таймер на миллисе
tmr2 = millis();
digitalWrite(LED1, flag = !flag); // мигать
}
// так надо. Чтоб ошибок не было
TIMERG0.wdt_wprotect = TIMG_WDT_WKEY_VALUE; // write enable
TIMERG0.wdt_feed = 1; // feed dog
TIMERG0.wdt_wprotect = 0; // write protect
}
}
Кстати всё изначально запускается на 1 ядре (втором. Нумерация с 0)
2. Еспшка может не прошиваться по нескольким причинам. Не тот юсб порт, нет драйверов, плохой кабель, проблемы с памятью и др.
Первые три пункта уже объяснялись на канале. А вот с памятью всё сложнее. Надо выбрать порт, открыть монитор порта, поставить скорость 115200 и нажать ресет на еспшке. В порт пришлётся много информации. Надо найти что-то типа 1)DIO/QIO/DOUT и 2)80MHz/40MHz. Потом зайти в инструменты, в flash mode поставить из 1), а в flash frequency из 2). И ещё. Чтобы прошить еспшку, надо зажать кнопку boot и кликнуть по reset. Потом можно прошивать
#espшки
#вифи
#ардуиноиде
#уроки
Кстати вот эти настройки, которые надо поставить в моём случае
А сейчас вы узнаете, как подключить адресную ленту WS2812 и управлять ей.
0. Ещё есть обычные ленты, не адресные. Они целиком светятся одним цветом. У обычных лент 4 ноги, а у адресных 3. У адресных лент можно управлять цветом каждого диода, но для них нужен икроконтроллер.
1. Подключение
GND --------- GND
DIN --470ом-- пин
5V ---------- 5в блок питания
ИЛИ
GND --------- GND
DIN --470ом-- пин
5V ---------- 5V
5V ---------- 5в блок питания
Важно! нельзя подключать ленту к ардуине без доп. питания!!! Есть 3 варианта:
1. Питать ардуину от компьютера, а ленту от бп. Ноги 5в не соединены
2. Питать и ленту, и ардуину от бп. Ноги 5в соединены
3. 1 вариант, но соединить ноги 5в. Если не повезёт(нет диода на плате ардуины), может сломаться компьютер. Но это не точно
2. Прошивка
Сначала надо подключить библиотеку FastLED и объявить массив диодов:
Для удобства можно задефайнить кол-во диодов:
В сетупе надо настроить ленту и (ОЧЕНЬ ЖЕЛАТЕЛЬНО) настроить макс.ток, чтобы не сгорел бп, а в лупе по таймеру обновлять ленту:
Всё. Можно рисовать. Вот способы:
#адреска
#железки
#библиотеки
#avrки (хотя и на есп работает) #espшки
#уроки
П.С. Схему подключения, код и внешний вид этого девайса пришлю потом
П.П.С. Медленно, но верно заканчивается кол-во оставшихся символов...(их всего ~4000. Тут 3301)
0. Ещё есть обычные ленты, не адресные. Они целиком светятся одним цветом. У обычных лент 4 ноги, а у адресных 3. У адресных лент можно управлять цветом каждого диода, но для них нужен икроконтроллер.
1. Подключение
GND --------- GND
DIN --470ом-- пин
5V ---------- 5в блок питания
ИЛИ
GND --------- GND
DIN --470ом-- пин
5V ---------- 5V
5V ---------- 5в блок питания
Важно! нельзя подключать ленту к ардуине без доп. питания!!! Есть 3 варианта:
1. Питать ардуину от компьютера, а ленту от бп. Ноги 5в не соединены
2. Питать и ленту, и ардуину от бп. Ноги 5в соединены
3. 1 вариант, но соединить ноги 5в. Если не повезёт(нет диода на плате ардуины), может сломаться компьютер. Но это не точно
2. Прошивка
Сначала надо подключить библиотеку FastLED и объявить массив диодов:
#include <FastLED.h>
CRGB leds[кол-во диодов];
Для удобства можно задефайнить кол-во диодов:
#define NUM_LEDS 50
#include <FastLED.h>
CRGB leds[NUM_LEDS];
В сетупе надо настроить ленту и (ОЧЕНЬ ЖЕЛАТЕЛЬНО) настроить макс.ток, чтобы не сгорел бп, а в лупе по таймеру обновлять ленту:
#define NUM_LEDS 50
#define CURRENT_LIMIT 1200
#define BRIGHTNESS 127 // яркость
#include <FastLED.h>
CRGB leds[NUM_LEDS];
void setup() {
Serial.begin(115200); // открываем сериал
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip ); // настраиваем ленту. <ЧИП, ПИН, ПОРЯДОК ЦВЕТОВ>
FastLED.setBrightness(BRIGHTNESS); // яркость
if (CURRENT_LIMIT > 0) FastLED.setMaxPowerInVoltsAndMilliamps(5, CURRENT_LIMIT); // макс. ток (напряжение в В, ток в мА)
FastLED.clear(); // залить чёрным
//fillAll(CRGB::Yellow);
FastLED.show(); // показать. Вызывать после изменений
}
void loop() {
static uint32_t tmr; // таймер на миллис
if (millis() - tmr >= (1000 / 24)) {
tmr = millis();
FastLED.show(); // показать
}
}
Всё. Можно рисовать. Вот способы:
// залить всё
void fillAll(CRGB color) {
for (int i = 0; i < NUM_LEDS; i++) {
leds[i] = color;
}
}
// залить
void fill(int a, int b, CRGB color) {
int dir = a > b ? -1 : 1;
for (int i = a; i < b; i+=dir) {
leds[i] = color;
}
}
// уменьшить яркость
#define SUB 0x40
void fade() {
for (int i = 0; i < NUM_LEDS; i++) {
byte &r = leds[i].r, &b = leds[i].b, &g = leds[i].g;
if (r >= SUB) r -= SUB;
else r = 0;
if (g >= SUB) g -= SUB;
else g = 0;
if (b >= SUB) b -= SUB;
else b = 0;
}
}
/*
leds[i] = col - покрасить диод #i. 1 диод это 0
fillAll(col) - залить
fill(a, b, col) - залить от a до b
fade() - плавно уменьшить яркость всей ленты
ЦВЕТ
CRGB::имя
CRGB(r, g, b)
CHSV(h, s, v)
0xRRGGBB
RR красный. 00 чёрный, FF максимальный
GG зелёный. 00 чёрный, FF максимальный
BB синий. 00 чёрный, FF максимальный
R + G = жёлтый
G + B = циановый
R + B = магентовый
R + G + B = белый
0xFF0000 — красный 0x00FF00 — зелёный
0x0000FF — синий 0xFFFF00 — жёлтый
0xFF00FF — магентовый 0x00FFFF — циановый
0xFFFFFF — белый
*/
#адреска
#железки
#библиотеки
#avrки (хотя и на есп работает) #espшки
#уроки
П.С. Схему подключения, код и внешний вид этого девайса пришлю потом
П.П.С. Медленно, но верно заканчивается кол-во оставшихся символов...(их всего ~4000. Тут 3301)
💘1
В старом посте была ошибка так что вот ещё раз про электричество и компоненты:
ток(или сила тока) (I) - условно говоря, кол-во электронов в момент времени в проводе. Именно из-за него нельзя втыкать пальцы в розетку. Измеряется в Амперах(А)
напряжение(U) - разность потенциалов между двумя проводами: если на одном относительно нуля 3В, а на другом 8В, то напряжение 8-3=5В. Измеряется в Вольтах(В, V)
резистор - элемент, ограничивающий ток. Основная характеристика резистора - сопротивление. Измеряется в Омах(например, 5 Ом, 10кОм)
мощность(P) - произведение тока и напряжения. Измеряется в Ваттах(Вт, W)
закон Ома - главный закон электроники. I = U/R.
Более подробно про эти первые термины в этом видео и на этом сайте
постоянное напряжение - когда напряжение всегда примерно одинаковое
переменное напряжение - когда напряжение меняется(как в розетке), чаще всего синусоидой
конденсатор - элемент, который может сглаживать сигнал, задерживать заряд и отделять переменную составляющую сигнала от постоянной. Основная характеристика - ёмкость. По идее измеряется в Фарадах, но почти всегда используют микрофарад(мкФ, uF)
транзистор - полупроводниковый элемент, он усиливает сигнал. Транзисторы бывают разных видов
диод - тоже полупроводниковый элемент. Он проводит ток только в одном направлении, а ещё способен сделать из переменного тока в постоянный
Это далеко не всё, но думаю пока хватит.
#начало
#резисторы
#уроки
ток(или сила тока) (I) - условно говоря, кол-во электронов в момент времени в проводе. Именно из-за него нельзя втыкать пальцы в розетку. Измеряется в Амперах(А)
напряжение(U) - разность потенциалов между двумя проводами: если на одном относительно нуля 3В, а на другом 8В, то напряжение 8-3=5В. Измеряется в Вольтах(В, V)
резистор - элемент, ограничивающий ток. Основная характеристика резистора - сопротивление. Измеряется в Омах(например, 5 Ом, 10кОм)
мощность(P) - произведение тока и напряжения. Измеряется в Ваттах(Вт, W)
закон Ома - главный закон электроники. I = U/R.
Более подробно про эти первые термины в этом видео и на этом сайте
постоянное напряжение - когда напряжение всегда примерно одинаковое
переменное напряжение - когда напряжение меняется(как в розетке), чаще всего синусоидой
конденсатор - элемент, который может сглаживать сигнал, задерживать заряд и отделять переменную составляющую сигнала от постоянной. Основная характеристика - ёмкость. По идее измеряется в Фарадах, но почти всегда используют микрофарад(мкФ, uF)
транзистор - полупроводниковый элемент, он усиливает сигнал. Транзисторы бывают разных видов
диод - тоже полупроводниковый элемент. Он проводит ток только в одном направлении, а ещё способен сделать из переменного тока в постоянный
Это далеко не всё, но думаю пока хватит.
#начало
#резисторы
#уроки
YouTube
Что такое электричество, или электротехника для чайников
Из этого видео «Электротехника для чайников» вы узнаете о законах постоянного тока (закон Ома, закон Джоуля-Ленца, и некоторые другие), я покажу несколько практических применений этих законов и дам парочку полезных советов. Видео ответит на вопрос «что такое…
👍1
Коротко, поясняю, для бт колонки ждем усилок (еще месяц ждать)
#новость
#новость
И кстати это тоже откладывается так как у меня дисплей почему-то тухнет не знаю почему!
#новость
#новость
Arduino15 channel
Коротко, поясняю, для бт колонки ждем усилок (еще месяц ждать) #новость
Может быть даже дольше так как он ещё только один город проехал за неделю!!!
#новость
#новость
😐2
И так первый мой проект блютуз колонка с подсветкой.
КОМПОНЕНТЫ:
Блютуз модуль
Пластмассовая коробка (любая)
Труба (3см диаметр (можно другой), и длину тоже можно любую)
Резиновая перчатка (нужен только палец от неё)
Резинка
Клеммник
Блок питания (5v, 3a)(можно взять аккумулятор 18650,модуль для зарядки, повышающий модуль до 5в)
2 динамика (5вт)
ПРОШИВКА ДЛЯ ПОДСВЕТКИ КОЛОНКИ 👈 объяснять не буду там ☝️всё написано.
#проекты
#поделки
#avrки
П. С скоро сниму как это всё работает
П. П. С там Китайский женщина живёт 😂
КОМПОНЕНТЫ:
Блютуз модуль
Пластмассовая коробка (любая)
Труба (3см диаметр (можно другой), и длину тоже можно любую)
Резиновая перчатка (нужен только палец от неё)
Резинка
Клеммник
Блок питания (5v, 3a)(можно взять аккумулятор 18650,модуль для зарядки, повышающий модуль до 5в)
2 динамика (5вт)
ПРОШИВКА ДЛЯ ПОДСВЕТКИ КОЛОНКИ 👈 объяснять не буду там ☝️всё написано.
#проекты
#поделки
#avrки
П. С скоро сниму как это всё работает
П. П. С там Китайский женщина живёт 😂
🏆2
Так, что-то тут давно ничего не выходило 😅 я создал бота @Arduino_channel_bot👈ему можно писать идеи для канала!
#новость
#новость
👍1
Arduino15 channel pinned «Так, что-то тут давно ничего не выходило 😅 я создал бота @Arduino_channel_bot👈ему можно писать идеи для канала! #новость»
Arduino15 channel
Так, что-то тут давно ничего не выходило 😅 я создал бота @Arduino_channel_bot👈ему можно писать идеи для канала! #новость
Кстати бот сейчас не работает! Но скоро починю!
#новость
#новость
👍1
всем привет, давно я(2-ой админ) тута ничего не публиковал, ссылочка на мой вк, туда можете задавать вопросы лично мне а еще там очень многа разных песенок тк я меломан
https://vk.com/osminogosminogovich
https://vk.com/osminogosminogovich
👍2
и еще одна новость, не очень давно я собрал себе электроскейт. Ладно давайте по порядку с чего все началось.
все началось с того что меня добавили в чат "электротранспортников".
оттуда я заинтересовался такой темой, и пришла идея купить готовый или собрать, увидев цены на хорошие, я сильно удивился высоте цен, и решил собирать сам
великолепные люди из чата мне подсказали что было бы лучшей связкой контроллера моторов и батареи.
Я положился на них, и не зря, тк они мне помогли во всем, один предоставил деку, фару и подцветку за небольшую цену, другой напечатал бокс, а третий любезно продал контроллер, а четвертый отправил подвеску с моторами, а пятый любезно собрал акб по моим запросам.
все было новое и идеально настроеное
*юзы народа дать не могу к сожелению, тк они сказали что лучше не надо, лишний спам тоже не нужен, но если есть вопросы пишите мне в лс в тг @One2_Love с удовольствием отвечу на все вопросы,
PS фото и тд прикреплю ниже
все началось с того что меня добавили в чат "электротранспортников".
оттуда я заинтересовался такой темой, и пришла идея купить готовый или собрать, увидев цены на хорошие, я сильно удивился высоте цен, и решил собирать сам
великолепные люди из чата мне подсказали что было бы лучшей связкой контроллера моторов и батареи.
Я положился на них, и не зря, тк они мне помогли во всем, один предоставил деку, фару и подцветку за небольшую цену, другой напечатал бокс, а третий любезно продал контроллер, а четвертый отправил подвеску с моторами, а пятый любезно собрал акб по моим запросам.
все было новое и идеально настроеное
*юзы народа дать не могу к сожелению, тк они сказали что лучше не надо, лишний спам тоже не нужен, но если есть вопросы пишите мне в лс в тг @One2_Love с удовольствием отвечу на все вопросы,
PS фото и тд прикреплю ниже
👍2🆒1
Arduino15 channel pinned «всем привет, давно я(2-ой админ) тута ничего не публиковал, ссылочка на мой вк, туда можете задавать вопросы лично мне а еще там очень многа разных песенок тк я меломан https://vk.com/osminogosminogovich»