
Оглавление:
- Шаг 1. Детали и компоненты
- Шаг 2. Планируйте свой прогресс
- Шаг 3: Как использовать потенциометры
- Шаг 4: Схема подключения (3х) потенциометра
- Шаг 5: Использование AnalogRead () и переменных
- Шаг 6: Использование последовательного монитора с 1 ручкой
- Шаг 7: Использование светодиода RGB
- Шаг 8: Использование потенциометров для управления светодиодом RGB (с одной ошибкой)
- Шаг 9: БОНУС: функция Map () и код очистки
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05


Подписаться Другие автора:





О себе: Всегда учусь….. Подробнее о tliguori330 »
Цветовой миксер - отличный проект для всех, кто работает и растет с Arduino. К концу этого руководства вы сможете смешивать и сочетать почти все цвета, которые только можно вообразить, повернув 3 ручки. Уровень навыков достаточно низок, чтобы успешно пройти его даже новичок, но также достаточно интересен, чтобы доставить удовольствие опытному ветеринару. Стоимость этого проекта практически равна нулю, и большинство комплектов Arduino поставляется с необходимыми материалами. В основе этого кода лежат некоторые фундаментальные функции Arduino, которые любой, кто использует Arduino, захочет понять. Мы подробно рассмотрим функции analogRead () и analogWrite (), как и другую обычную функцию, называемую map (). Эти ссылки приведут вас к справочным страницам Arduino для этих функций.
Шаг 1. Детали и компоненты




Ардуино Уно
Потенциометр (x3)
RGB светодиод
Резистор 220 Ом (x3)
Провода-перемычки (12 шт.)
Хлебная доска
Шаг 2. Планируйте свой прогресс

Было бы очень полезно спланировать, как вы завершите свой проект. Кодирование - это логический переход от одного шага к другому. Я сделал блок-схему, в которой показано, как я хочу, чтобы мой скетч выполнялся. Общая цель состоит в том, чтобы 3 ручки (потенциометры) управляли каждым из трех цветов светодиода RGB. Для этого нам нужно будет создать эскиз, соответствующий блок-схеме. Мы хотим….
1) Считайте 3 разных потенциометра и сохраните их значения в переменных.
2) Мы преобразуем эти значения, чтобы они соответствовали диапазону светодиода RGB.
3) Затем, наконец, мы запишем эти преобразованные значения в каждый из цветов RGB.
Шаг 3: Как использовать потенциометры


Потенциометр, один из самых основных компонентов в электронном комплекте, может использоваться во многих различных проектах. потенциометры работают, позволяя пользователю физически изменять сопротивление цепи. Самый простой пример потенциометра - диммер. скольжение или поворот ручки изменяет длину контура. более длинный путь приводит к большему сопротивлению. Повышенное сопротивление обратно пропорционально снижает ток, и свет тускнеет. Они могут быть разных форм и размеров, но большинство из них имеют одинаковую базовую настройку. Студент попросил помочь починить его гитару, и мы обнаружили, что ручки на ней были точно такими же, как потенциометры. Обычно внешние ножки подключены к 5 В и земле, а средняя ножка подключается к аналоговому выводу, например A0.
Шаг 4: Схема подключения (3х) потенциометра



Самая левая нога будет подключена к 5 В, а самая правая нога будет подключена к GND. Вы можете полностью изменить эти два шага, и это не сильно повредит проекту. Все, что изменится, - это повернуть ручку до упора влево, чтобы получить полную яркость, а не полностью выключить. Средняя нога будет подключена к одному из аналоговых контактов на Arduino. Поскольку у нас будет три ручки, нам нужно утроить работу, которую мы только что сделали. Каждой ручке требуется 5 В и заземление, поэтому их можно использовать совместно с макетной платой. Красная полоса на макетной плате подключена к 5 Вольт, а синяя полоса - к земле. Каждой ручке нужен собственный аналоговый вывод, поэтому они подключаются к A0, A1, A2.
Шаг 5: Использование AnalogRead () и переменных
Если вы правильно настроили потенциометр, мы готовы считывать эти значения. Каждый раз, когда мы хотим это сделать, мы используем функцию analogRead (). Правильный синтаксис - analogRead (pin #); поэтому, чтобы прочитать наш средний потенциометр, мы должны будем использовать analogRead (A1); Чтобы работать с числами, отправляемыми с ручки на Arduino, мы также захотим сохранить эти числа в переменной. Строка кода выполнит эту задачу, поскольку мы читаем потенциометр и сохраняем его текущий номер в целочисленной переменной "val".
int val = аналоговое чтение (A0);
Шаг 6: Использование последовательного монитора с 1 ручкой


В настоящее время мы можем получать значения от ручек и сохранять их в переменной, но было бы полезно, если бы мы могли видеть эти значения. Для этого нам нужно использовать встроенный серийный монитор. Приведенный ниже код - это первый набросок, который мы фактически запустим в IDE Arduino, который можно скачать с их сайта. В void setup () мы активируем аналоговые выводы, подключенные к каждой средней ножке, как INPUT и активируем последовательный монитор, используя Serial.begin (9600); затем мы читаем только одну из кнопок и сохраняем ее в переменной, как и раньше. Теперь изменение состоит в том, что мы добавили строку, которая печатает, какое число хранится в переменной. Если вы скомпилируете и запустите скетч, вы сможете открыть монитор последовательного порта и увидеть, как на экране прокручиваются числа. Каждый раз, когда код зацикливается, мы читаем и печатаем другое число. Если вы поверните ручку, подключенную к A0, вы должны увидеть значения в диапазоне от 0 до 1023. позже цель будет состоять в том, чтобы считать все 3 потенциометра, для чего потребуются еще 2 аналоговых считывания и 2 разные переменные для сохранения и печати.
void setup () {
pinMode (A0, ВХОД); pinMode (A1, ВХОД); pinMode (A2, ВХОД); Serial.begin (9600); } пустая петля () {int val = analogRead (A0); Serial.println (val); }
Шаг 7: Использование светодиода RGB



Светодиод на 4 ножках RGB - один из моих любимых компонентов для Arduino. Я считаю, что способ создания бесконечных цветов из смесей трех основных цветов увлекателен. Настройка аналогична настройке любого обычного светодиода, но здесь в основном используются красный, синий и зеленый светодиоды, объединенные вместе. Каждая короткая ножка будет управляться одним из контактов PWM на Arduino. Самая длинная нога будет подключена к 5 вольт или заземлению, в зависимости от того, какой у вас светодиод с общим анодом или с общим катодом. Вам нужно будет попробовать оба способа, чтобы решить эту проблему. У нас уже будет 5 В и заземление, подключенное к макетной плате, чтобы его было легко заменить. На приведенной выше диаграмме также показано использование 3 резисторов. На самом деле я часто пропускаю этот шаг, потому что у меня еще не было, и на мне погас светодиод.
Чтобы создать цвета, мы будем использовать функцию analogWrite (), чтобы контролировать, сколько красного, синего или зеленого нужно добавить. Чтобы использовать эту функцию, вам нужно указать номер контакта, с которым мы будем разговаривать, и номер от 0 до 255. 0 полностью выключен, а 255 - максимальное количество одного цвета. Давайте подключим красную ножку к контакту 9, зеленую - к контакту 10 и синюю - к контакту 11. Это может потребовать некоторых проб и ошибок, чтобы выяснить, какая ножка какого цвета. Если бы я хотел сделать пурпурный оттенок, я мог бы использовать много красного, никакого зеленого и, возможно, половинную интенсивность синего. Я призываю вас повозиться с этими числами, это действительно интересно. Некоторые распространенные примеры представлены на фотографиях выше.
void setup () {
pinMode (9, ВЫХОД); pinMode (10, ВЫХОД); pinMode (11, ВЫХОД); } void loop () {analogWrite (9, 255); analogWrite (10, 0); analogWrite (11, 125)}
Шаг 8: Использование потенциометров для управления светодиодом RGB (с одной ошибкой)



Пришло время соединить наши два кода вместе. На стандартной макетной плате должно быть достаточно места для размещения всех 3 регуляторов и светодиода RGB. Идея состоит в том, что вместо того, чтобы вводить значения для красного, синего и зеленого, мы будем использовать значения, сохраненные с каждого потенциометра, чтобы постоянно менять цвета. в этом случае нам понадобятся 3 переменные. redval, greenval, blueval - разные переменные. Имейте в виду, что вы можете называть эти переменные как хотите. Если вы повернете «зеленую» ручку, и количество красного изменится, вы можете переключить имена, чтобы они соответствовали правильно. теперь вы можете повернуть каждую ручку и контролировать цвета !!
void setup () {
pinMode (A0, ВХОД); pinMode (A1, ВХОД); pinMode (A2, ВХОД); pinMode (9, ВЫХОД); pinMode (10, ВЫХОД); pinMode (11, ВЫХОД); } void setup () {int redVal = analogRead (A0); int greenVal = analogRead (A1); int blueVal = analogRead (A2); analogWrite (9, redVal); analogWrite (10, greenVal); analogWrite (11, blueVal); }
Шаг 9: БОНУС: функция Map () и код очистки
Вы можете заметить, что, когда вы начинаете поворачивать ручку для выбора одного цвета вверх, он будет расти, а затем внезапно опустится до выключения. Этот паттерн роста и последующего быстрого отключения повторяется 4 раза, когда вы поворачиваете ручку до упора. Если вы помните, мы говорили, что потенциометры могут считывать значения от 0 до 1023. Функция analogWrite () принимает только значения от 0 до 255. Когда потенциометр превышает 255, он в основном начинается с 0. Есть хорошая функция, помогающая с этим. ошибка называется map (). вы можете преобразовать один диапазон чисел в другой диапазон чисел за один шаг. мы преобразуем числа от 0 до 1023 в числа от 0 до 255. Например, если ручка была установлена наполовину, она должна показывать около 512. это число будет изменено на 126, что составляет половину мощности для светодиода. В этом последнем наброске я назвал контакты именами переменных для удобства. Теперь у вас есть готовый смеситель цветов, с которым можно поэкспериментировать !!!
// имена переменных для выводов потенциометра
int redPot = A0; int greenPot = A1; int bluePot = A2 // имена переменных для выводов RGB int redLED = 9; int greenLED = 10; int blueLED = 11; void setup () {pinMode (redPot, ВВОД); pinMode (greenPOT, ВХОД); pinMode (bluePot, ВХОД); pinMode (красный светодиод, ВЫХОД); pinMode (зеленый светодиод, ВЫХОД); pinMode (синий светодиод, ВЫХОД); Последовательный, начало (9600); } void loop () {// считываем и сохраняем значения с потенциометров int redVal = analogRead (redPot); int greenVal = analogRead (зеленыйПот); int blueVal - analogRead (bluePot); // преобразовываем значения от 0-1023 до 0-255 для светодиода RGB redVal = map (redVal, 0, 1023, 0, 255); greenVal = map (greenVal, 0, 1023, 0, 255); blueVal = map (blueVal, 0, 1023, 0, 255); // записываем эти преобразованные значения в каждый цвет светодиода RGB analogWrite (redLED, redVal); anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // показать значения на последовательном мониторе Serial.print ("red:"); Serial.print (redVal); Serial.print ("зеленый:"); Serial.print (greenVal); Serial.print ("синий:"); Serial.println (blueVal); }
Рекомендуемые:
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: 7 шагов (с изображениями)

Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: я планирую использовать этот Rapsberry PI в кучу забавных проектов еще в моем блоге. Не стесняйтесь проверить это. Я хотел вернуться к использованию своего Raspberry PI, но у меня не было клавиатуры или мыши в моем новом месте. Прошло много времени с тех пор, как я установил Raspberry
Робот-миксер для коктейлей - Пейте ответственно: 5 шагов

Робот-миксер для коктейлей - Пейте ответственно: в этом проекте у меня было много целей, но в первую очередь я хотел приготовить два смешанных напитка для своей свадьбы. Я хотел, чтобы при розливе потребовалось около минуты и с точным количеством спиртного. Сантехника потребует простой очистки. Моя с
Сделаем мини-миксер из перерабатываемых материалов: 6 шагов

Давайте сделаем мини-миксер из вторсырья: Привет, я Хилал! В этом проекте мы делаем наш миксер из переработанных материалов. Вы можете легко взбить яйцо, молоко, йогурт и все жидкости, которые приходят вам в голову. Вы даже можете приготовить пирог в собственном миксере! :) На видео мы сделали фруктовый йогурт:
Цветовой режим клавиатуры / трекбола BlackBerry Pearl 8130: 3 шага

BlackBerry Pearl 8130 Keyboard / Trackball Color Mod: Как раскрасить клавиатуру и индикаторы трекбола BlackBerry Pearl 8130
Цветовой режим логотипа Macbook Pro: 6 шагов

Macbook Pro Logo Color Mod: я покажу вам, как изменить логотип вашего MacBook Pro на любой цвет, который вы выберете. ВАЖНО !!! Этот мод, вероятно, аннулирует вашу гарантию! Вы были предупреждены