Користећи ово домаће у РГБ систему можете направити било коју боју са пет тастера
1 - додајте црвено
2 - Додајте зелено
3 - Додајте плаву
4 - Случајна (случајна боја)
5 - Ресетовање
Шта нам треба:
1. Ардуино (у мом случају ардуино мега)
2. Одбор за развој
3. Тип скакача: мама мама и тата тата
4. ЛЦД 1602 (2 реда од 16 знакова)
5. Дугмад 5 комада
6. СМД РГБ ЛЕД
7. Отпорник за 10 Ком 5 комада
За почетак повезујемо РГБ ЛЕД (у недостатку отпорника, ставите отпорник на 220 охма).
Затим ставимо 5 тастера: једна нога дугмета на пин 5В, а друга кроз отпорник од 10К према земљи и иста нога према ардуину.
ЛЦД 1602 екран повезујемо на СДА и СЦЛ (И2Ц).
Све је то повезано са ардуино контактима (ГНД, 5В, СДА СЦЛ, 2, 3, 4, 9, 10, 11, 12, 13) као на слици.
Па, заправо сама скица
#инцлуде "ЛикуидЦрустал_И2Ц.х" // повежите библиотеку да ради са дисплејом преко И2Ц
#инцлуде "Вире.х" // Повежите библиотеку да ради са И2Ц
инт Р = 9;
инт Г = 10;
инт Б = 11;
// РГБ боје
инт БР = 0;
инт БГ = 0;
инт ББ = 0;
// варијабле за спремање вриједности
инт КР = 2; // црвено дугме
инт КГ = 3; // дугме је зелено
инт КБ = 4; // плаво дугме
инт Ц = 13; // дугме за ресетовање
инт РС = 12; // дугме насумично
ЛикуидЦристал_И2Ц лцд (0к27.16.2); // Повежите дисплеј (адреса, колоне, линије)
воид сетуп () {// трчање једном
пинМоде (Р, ИЗЛАЗ);
пинМоде (Г, ИЗЛАЗ);
пинМоде (Б, ИЗЛАЗ);
// повежите РГБ ЛЕД
}
воид петље () {// понавља се бескрајно
кашњење (10); // кашњење 10 мс
лцд.инит (); // дефинисати приказ
лцд.бацклигхт (); // укључите позадинско осветљење екрана
лцд.цлеар (); // обришите екран
лцд.сетЦурсор (5, 0); // поставите курсор на 6. ступац и 0. реда
лцд.принт ("Боја"); // писати боју
лцд.сетЦурсор (0, 1);
лцд.принт ("Р"); // написати Р
лцд.сетЦурсор (6, 1);
лцд.принт ("Г"); / написати Г
лцд.сетЦурсор (12, 1);
лцд.принт ("Б"); написати Б
лцд.принт (ББ); // исписати плаву вриједност
лцд.сетЦурсор (2, 1);
лцд.принт (БР); // исписати вриједност црвене боје
лцд.сетЦурсор (8, 1);
лцд.принт (БГ); // исписати зелену вриједност
лцд.сетЦурсор (13, 1);
иф (дигитално читање (КР) == ХИГХ) {БР + = 15; } // ако се притисне тастер Р, тада је вредност Р +15
иф (дигитално читање (КГ) == ХИГХ) {БГ + = 15; } // ако се притисне тастер Г, вредност Г +15
иф (дигитално читање (КБ) == ХИГХ) {ББ + = 15; } // ако се притисне дугме Б, тада је вредност Б +15
иф (дигитално читање (Ц) == ХИГХ) {БР - = 254; } // ако се притисне тастер Ц, тада вредност Р -254
иф (дигитално читање (Ц) == ХИГХ) {БГ - = 254; } // ако се притисне тастер Ц, вредност Г -254
иф (дигитално читање (Ц) == ХИГХ) {ББ - = 254; } // ако се притисне тастер Ц, тада је вредност Б -254
иф (дигиталРеад (РС) == ХИГХ) {БР = случајно (0, 254); } // ако се притисне РС тастер, вредност Р је од 0 до 254
иф (дигиталРеад (РС) == ХИГХ) {БГ = рандом (0, 254); } // ако се притисне РС тастер, вредност Г је од 0 до 254
иф (дигитално читање (РС) == ХИГХ) {ББ = случајно (0, 254); } // ако се притисне РС тастер, вредност Б је од 0 до 254
БР = ограничење (БР, 0, 254); // БР = (вредност, од, до)
аналогВрите (Р, БР); // помоћу ПВМ модулације подешавамо свјетлину од 0 до 254
БГ = ограничење (БГ, 0, 254); // БГ = (вредност, од, до)
аналогВрите (Г, БГ); // помоћу ПВМ модулације подешавамо свјетлину од 0 до 254
ББ = ограничење (ББ, 0, 254); // ББ = (вредност, од, до)
аналогВрите (Б, ББ); // помоћу ПВМ модулације подешавамо свјетлину од 0 до 254
}
Скица за скидање:
То би требало бити!
Напишите у коментарима да није јасно да ћу одговорити на сва питања
#инцлуде "ЛикуидЦрустал_И2Ц.х" // повежите библиотеку да ради са дисплејом преко И2Ц
#инцлуде "Вире.х" // Повежите библиотеку да ради са И2Ц
инт Р = 9;
инт Г = 10;
инт Б = 11;
// РГБ боје
инт БР = 0;
инт БГ = 0;
инт ББ = 0;
// варијабле за спремање вриједности
инт КР = 2; // црвено дугме
инт КГ = 3; // дугме је зелено
инт КБ = 4; // плаво дугме
инт Ц = 13; // дугме за ресетовање
инт РС = 12; // дугме насумично
ЛикуидЦристал_И2Ц лцд (0к27.16.2); // Повежите дисплеј (адреса, колоне, линије)
воид сетуп () {// трчање једном
пинМоде (Р, ИЗЛАЗ);
пинМоде (Г, ИЗЛАЗ);
пинМоде (Б, ИЗЛАЗ);
// повежите РГБ ЛЕД
}
воид петље () {// понавља се бескрајно
кашњење (10); // кашњење 10 мс
лцд.инит (); // дефинисати приказ
лцд.бацклигхт (); // укључите позадинско осветљење екрана
лцд.цлеар (); // обришите екран
лцд.сетЦурсор (5, 0); // поставите курсор на 6. ступац и 0. реда
лцд.принт ("Боја"); // писати боју
лцд.сетЦурсор (0, 1);
лцд.принт ("Р"); // написати Р
лцд.сетЦурсор (6, 1);
лцд.принт ("Г"); / написати Г
лцд.сетЦурсор (12, 1);
лцд.принт ("Б"); написати Б
лцд.принт (ББ); // исписати плаву вриједност
лцд.сетЦурсор (2, 1);
лцд.принт (БР); // исписати вриједност црвене боје
лцд.сетЦурсор (8, 1);
лцд.принт (БГ); // исписати зелену вриједност
лцд.сетЦурсор (13, 1);
иф (дигитално читање (КР) == ХИГХ) {БР + = 15; } // ако се притисне тастер Р, тада је вредност Р +15
иф (дигитално читање (КГ) == ХИГХ) {БГ + = 15; } // ако се притисне тастер Г, вредност Г +15
иф (дигитално читање (КБ) == ХИГХ) {ББ + = 15; } // ако се притисне дугме Б, тада је вредност Б +15
иф (дигитално читање (Ц) == ХИГХ) {БР - = 254; } // ако се притисне тастер Ц, тада вредност Р -254
иф (дигитално читање (Ц) == ХИГХ) {БГ - = 254; } // ако се притисне тастер Ц, вредност Г -254
иф (дигитално читање (Ц) == ХИГХ) {ББ - = 254; } // ако се притисне тастер Ц, тада је вредност Б -254
иф (дигиталРеад (РС) == ХИГХ) {БР = случајно (0, 254); } // ако се притисне РС тастер, вредност Р је од 0 до 254
иф (дигиталРеад (РС) == ХИГХ) {БГ = рандом (0, 254); } // ако се притисне РС тастер, вредност Г је од 0 до 254
иф (дигитално читање (РС) == ХИГХ) {ББ = случајно (0, 254); } // ако се притисне РС тастер, вредност Б је од 0 до 254
БР = ограничење (БР, 0, 254); // БР = (вредност, од, до)
аналогВрите (Р, БР); // помоћу ПВМ модулације подешавамо свјетлину од 0 до 254
БГ = ограничење (БГ, 0, 254); // БГ = (вредност, од, до)
аналогВрите (Г, БГ); // помоћу ПВМ модулације подешавамо свјетлину од 0 до 254
ББ = ограничење (ББ, 0, 254); // ББ = (вредност, од, до)
аналогВрите (Б, ББ); // помоћу ПВМ модулације подешавамо свјетлину од 0 до 254
}