Arduino + TV

Arduino TV

Подключение Ардуино к телевизору




Для того чтобы, вывести с ардуины изображение или текст на любое устройство с видеовходом (RCA) , например на телевизор, понадобится всего лишь два резистора и собственно сам телевизор



Подключение



Ардуино Мега — D11 ⇨ 1kom, D29 ⇨ 470om.



Программирование

Необходимо скачать и установить библиотеку TVout


Заливаем простейший скетч, «чтоб заработало»:


#include "TVout.h"
#include "fontALL.h"
TVout TV;

void setup() 
 {
  TV.begin(PAL,90,40); 
  TV.select_font(font6x8); 
 }
 
void loop()
 {
  TV.set_cursor(0,6);
  TV.print("Hello");
  delay(1000);
 }


Телевизор покажет Hello



Следом попробуйте скетч DemoPAL (из примеров поставляемых с библиотекой), в нём продемонстрированы все возможности.



Практическое применение всему этому, читателю придётся искать самостоятельно…

Например, можно залить вот такой скетч, и превратить телевизор в настольные/настенные часы:



#include "TVout.h"
#include "fontALL.h"
TVout TV;
#define MAXMILLIS 4294967295
unsigned long   time;
long timelapsed = 0;
uint8_t chas = 0;
uint8_t minuta = 0;
uint8_t secunda = 0;


void setup() 
 {
   TV.begin(PAL,90,40);  
   TV.select_font(font8x8); 
 }
 
void loop()
 {
   unsigned long currtime = millis();
   if(currtime > time) timelapsed = (currtime - time); 
   else timelapsed = (MAXMILLIS - time + currtime);
  
   if(timelapsed > 999)
      {  
        time = currtime;
        secunda++;
        if(secunda > 59)  
         {
           secunda=0;
           minuta++;
           
           if(minuta > 59) 
             {
               minuta=0; 
               chas++;
               if(chas>23)  chas=0; 
             } 
         }
       
        tv(); 
       }
 }
 
 
void tv()
 {
    TV.set_cursor(10,16);
    TV.print(chas, DEC);
    TV.print(":"); 
    TV.print(minuta, DEC);
    TV.print(":");   
    TV.print(secunda, DEC);     
 }






Сайт проекта

На этом всё…


  • 0
  • 8218

Комментарии (27)

0
1.Спасибо огромное за Ваши статьи, полезная информация. Хотелось бы ещё увидеть что нибудь про передачу данных с ардуино на сервер mosquitto через роутер на OpenWrt. ))
2.Подскажите, у меня роутер Gl-iNet он очень похож на to-link описанный в ваших статьях. Я так понимаю что все что описано будет работать и на нём.
3.P.S в статье про настройку OpenWRT можно добавить пункт про русификацию luci.))
0
Пожалуйста. Про mosquitto ничего не скажу, не пользовал. По поводу Gl-iNet, да, он очень похож на мр, всё должно работать.

П.С. Если Вы про эту статью, то там указана установка пакета luci-i18n-russian.
0
спасибо за статью.Попробовал Ваш второй скеч но вместо цифр выходят символы
точки, стрелки и тд.Не подскажите в чем проблемма
0
А если так:
TV.print(chas, DEC);
...
0
без изменений
0
0
А если шрифт поменять?
TV.select_font(font6x8);
0
А Вы везде прописали DEC?
0
везде дописал все пошло огромное спасибо
0
Пожалуйста.
0
вылез следующий косяк, при переходе через сутки, потом стирает
0
0
Вы скетч не изменяли?
0
нет
0
TV.set_cursor(22,16);
кроме центровки
0

У меня каждую минуту
0
А попробуйте вот такой скетч:


#include "TVout.h"
#include "fontALL.h"
TVout TV;
unsigned long   timme;
byte chas = 0;
byte minuta = 0;
byte secunda = 0;

void setup() 
 {
   timme = millis();
   TV.begin(PAL,90,40);  
   TV.select_font(font8x8); 
 }
 
void loop()
 {

   if((millis()-timme) > 999) 
      {  
        timme = millis();
        secunda++;
        if(secunda > 59)  
         {
           secunda=0;
           minuta++;
           
           if(minuta > 59) 
             {
               minuta=0; 
               chas++;
               if(chas>23)  chas=0; 
             } 
         }
       
        tv();  
       }
 
 }
 
void tv()
 {
    TV.set_cursor(10,16);
    TV.print(chas, DEC);
    TV.print(":"); 
    TV.print(minuta, DEC);
    TV.print(":");   
    TV.print(secunda, DEC);  
 }
0
Без изменений, такое ощущение что сначала часы минуты по две цифры, а потом сдвигаются в право и выскакивает 59 и когда минуты и часы опять из двух символов то сдвигается в право и стирает
0
А если это TV.set_cursor(22,16); сделать как было.
0
без изменений, а можно сделать чтобы часы минуты и секунды выводились по 2 цифры 01,02 и тд
0
Можно.
0
а как выводить в TV.print() русский текст?
0
валяется у меня автомобильный телевизор хочу на него выводить температуру за окном, в комнате и часы
0
Русские буквы никогда не пробовал выводить, поэтому не помогу.
0
Доброго времени суток! А откуда программа знает какие выходы D7 D9 или они по умолчанию в библиотеке, можно свои переназначить(естественно цифровые), если эти заняты? я новичок
0
Здравствуйте. Да, они прописаны в библиотеке, переназначать я не пробовал.
0
Спасибо друг
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.