VGA фоновая подсветка монитора или телевизора
- Войдите на сайт для отправки комментариев
Чт, 17/09/2020 - 18:16

Сделал фоновую подсветку для телевизора используя сигналы VGA через переходник HDMI в VGA
а как добавить сигналы H и V синхронизации понять не могу
[code]
#include <Adafruit_NeoPixel.h>
int red,green,blue = 0;
// IMPORTANT: Set pixel COUNT, PIN and TYPE
#define PIN 6
#define NUMPIXELS 79
#define POT_0_PIN A0
#define POT_1_PIN A1
#define POT_2_PIN A2
// Initialize the neopixel strip
Adafruit_NeoPixel strip(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
// Set the pins connected to the potentiometer as inputs
pinMode(0,INPUT);
pinMode(1,INPUT);
pinMode(2,INPUT);
strip.begin();
strip.show(); // Initialize all pixels to 'off'
rainbowCycle( 1 ); // Flash rainbows at the begining
}
void loop() {
// Read and store the potentiometer values
// We are scaling them from a 12bit scale to an 8 bit scale
red = map(analogRead(A0), 0, 820, 0 , 255);
green = map(analogRead(A1), 0, 820, 0 , 255);
blue = map(analogRead(A2), 0 , 820, 0 , 255);
// set colors of all the eight neopixles
for(int pixel = 0 ;pixel < NUMPIXELS ;pixel++)
{
strip.setPixelColor(pixel, red, green, blue);
}
strip.show(); // Update the strip with new color values
delay(50);
}
void rainbowCycle(uint8_t wait) {
uint16_t i, j;
for(j=0 ; j<256 * 5 ; j++) { // 5 cycles of all colors on wheel
for(i=0; i< strip.numPixels(); i++) {
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
}
strip.show();
delay(wait);
}
}
// Helper function for rainbows
// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
WheelPos = 255 - WheelPos;
if(WheelPos < 85) {
return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
}
if(WheelPos < 170) {
WheelPos -= 85;
return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
WheelPos -= 170;
return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}
[/code]
Бывает...
Мы тоже все не сразу могли.
https://alexgyver.ru/arduino_ambilight/
А вообще раздел для поспрошаек в другом месте, этот для готовых проектов.
Лично я не вижу на схеме "сигналы H и V синхронизации" и в коде их.
Лично я не вижу на схеме "сигналы H и V синхронизации"
неправ, на схеме есть :) - на втором рисунке внизу слева нарисовано " V sync -? H sync - ?" :)))
В коде нет - но, впрочем, код похоже откуда-то скопищен кусками... описаны какие-то потенциометры. которых нет на схеме... входы цвета описаны дефайнами. а используются без них.... и тд
Код брал с потенциометрами на аналоговых входах а H и V синхронизации не знаю как использовать поэтому они на схеме есть но с вопросом а что POT что RED как хочеш так и обозначай
Это все проходили привязка к компьютеру а через HDMI грабли
Неправ. Но что с "сигналы H и V синхронизации" делать ТС собрался - так и не понял. А сам он понимает, куда их примотать?.
Неправ. Но что с "сигналы H и V синхронизации" делать ТС собрался - так и не понял. А сам он понимает, куда их примотать?.
Сигналы синхронизации нужны что бы подсветку делать в разных частях разным цветом синхронизированным с крартинкой.
Исправил Код
[код] #включитьч> int красный, зеленый, синий = 0; // Важно: установите количество пикселей, PIN-код и тип #определение PIN-кода 6 #определение НУМПИКСЕЛЕЙ 79 #define VGA_R_PIN A0 #определить VGA_G_PIN A1 #define VGA_B_PIN A2 // Инициализация полосы neopixel Adafruit_neopixel strip(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); пустая настройка() { // Установите контакты, подключенные к потенциометру, в качестве входных сигналов pinMode(0, вход); pinMode(1, вход); pinMode(2, вход); Стриптиз.начать(); Стриптиз.show (); / / инициализировать все пиксели в положение " Выкл." rainbowCycle( 1 ); / / вспышка радуги в начале } пустотная петля() { // Считывание и сохранение значений потенциометра // Мы масштабируем их от 12-битного масштаба до 8-битного масштаба красный = карта (analogRead(A0), 0, 820, 0, 255); зеленый = карта (analogRead(A1), 0, 820, 0, 255); синий = карта (analogRead(A2), 0, 820, 0, 255); // установить цвета всех восьми неопикселей for (int pixel = 0; пиксель) { Стриптиз.setPixelColor (пиксель, красный, зеленый, синий); } Стриптиз.show (); / / обновите полоску новыми значениями цвета задержка(50); } void rainbowCycle (uint8_t wait) { uint16_t i, j; для(j=0; j для(i=0; inumPixels (); i++) { Стриптиз.setPixelColor (i, Wheel (((i * 256 / strip.numPixels ()) + j) & 255)); } Стриптиз.показать(); задержка(ожидание); } } // Вспомогательная функция для радуги // Введите значение от 0 до 255, чтобы получить значение цвета. // Цвета-это переход r-g - b-back в r. uint32_t Wheel (байт WheelPos) { WheelPos = 255-WheelPos; если(WheelPos) { возвратная полоса.Цвет (255-WheelPos * 3, 0, WheelPos * 3); } если(WheelPos) { WheelPos - = 85; возвратная полоса.Цвет(0, WheelPos * 3, 255-WheelPos * 3); } WheelPos - = 170; возвратная полоса.Цвет(WheelPos * 3, 255-WheelPos * 3, 0); } [/код]Неправ. Но что с "сигналы H и V синхронизации" делать ТС собрался - так и не понял. А сам он понимает, куда их примотать?.
Сигналы синхронизации нужны что бы подсветку делать в разных частях разным цветом синхронизированным с крартинкой.
Допустим у нас есть поле X*Y пикселов. Как выглядит функция засветки (количество пикселей и их координаты) относительно сигнала H и V в диапазоне 0...1023?
Согласен. Синхроимпульсы уровня TTL подать на цифровые входы а вот дальше чтоб они управляли местоположением пикселя на ленте вопрос
https://cxem.net/arduino/arduino65.php как выводить сигнал VGA
Лично Вы как планируете использовать эти два сигнала?
Пока не знаю
Сигналы синхронизации нужны что бы подсветку делать в разных частях разным цветом синхронизированным с крартинкой.
Допустим у нас есть поле X*Y пикселов. Как выглядит функция засветки (количество пикселей и их координаты) относительно сигнала H и V в диапазоне 0...1023?
Поле изображения разбивается на несколько прямоугольников. В простейшем случае на 4. Дальше используя сигналы синхронизации вычисляем средний цвет и яркость изображения в каждом прямоугольнике за несколько кадров. А потм выводи соответсвующий цвет и яркость на ленту делая плавный переход между частями экрана.
Яркость и цвет задаются сигналом RGB вот номер пикселя с помощью H и V