Оглавление:

Цветовой миксер с Arduino: 9 шагов (с изображениями)
Цветовой миксер с Arduino: 9 шагов (с изображениями)

Видео: Цветовой миксер с Arduino: 9 шагов (с изображениями)

Видео: Цветовой миксер с Arduino: 9 шагов (с изображениями)
Видео: Понравилась девушка 🥰 #shorts 2024, Ноябрь
Anonim
Image
Image

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

Цветная сфера с Arduino
Цветная сфера с Arduino
Doodle Bot с процессом проектирования
Doodle Bot с процессом проектирования
Doodle Bot с процессом проектирования
Doodle Bot с процессом проектирования
Сенсорное пианино Arduino
Сенсорное пианино Arduino
Сенсорное пианино Arduino
Сенсорное пианино Arduino

О себе: Всегда учусь….. Подробнее о 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х) потенциометра

Схема подключения (3х) потенциометра
Схема подключения (3х) потенциометра
Схема подключения (3х) потенциометра
Схема подключения (3х) потенциометра
Схема подключения (3х) потенциометра
Схема подключения (3х) потенциометра

Самая левая нога будет подключена к 5 В, а самая правая нога будет подключена к GND. Вы можете полностью изменить эти два шага, и это не сильно повредит проекту. Все, что изменится, - это повернуть ручку до упора влево, чтобы получить полную яркость, а не полностью выключить. Средняя нога будет подключена к одному из аналоговых контактов на Arduino. Поскольку у нас будет три ручки, нам нужно утроить работу, которую мы только что сделали. Каждой ручке требуется 5 В и заземление, поэтому их можно использовать совместно с макетной платой. Красная полоса на макетной плате подключена к 5 Вольт, а синяя полоса - к земле. Каждой ручке нужен собственный аналоговый вывод, поэтому они подключаются к A0, A1, A2.

Шаг 5: Использование AnalogRead () и переменных

Если вы правильно настроили потенциометр, мы готовы считывать эти значения. Каждый раз, когда мы хотим это сделать, мы используем функцию analogRead (). Правильный синтаксис - analogRead (pin #); поэтому, чтобы прочитать наш средний потенциометр, мы должны будем использовать analogRead (A1); Чтобы работать с числами, отправляемыми с ручки на Arduino, мы также захотим сохранить эти числа в переменной. Строка кода выполнит эту задачу, поскольку мы читаем потенциометр и сохраняем его текущий номер в целочисленной переменной "val".

int val = аналоговое чтение (A0);

Шаг 6: Использование последовательного монитора с 1 ручкой

Image
Image

В настоящее время мы можем получать значения от ручек и сохранять их в переменной, но было бы полезно, если бы мы могли видеть эти значения. Для этого нам нужно использовать встроенный серийный монитор. Приведенный ниже код - это первый набросок, который мы фактически запустим в 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

Использование светодиода RGB
Использование светодиода RGB
Использование светодиода RGB
Использование светодиода RGB
Использование светодиода RGB
Использование светодиода 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 (с одной ошибкой)

Использование потенциометров для управления светодиодом RGB (с одной ошибкой)
Использование потенциометров для управления светодиодом RGB (с одной ошибкой)
Использование потенциометров для управления светодиодом RGB (с одной ошибкой)
Использование потенциометров для управления светодиодом RGB (с одной ошибкой)
Использование потенциометров для управления светодиодом RGB (с одной ошибкой)
Использование потенциометров для управления светодиодом 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); }

Рекомендуемые: