Например TDA7294

Форум РадиоКот • Просмотр темы - RGB Ambient Thermometer
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт дек 18, 2025 16:13:48

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: RGB Ambient Thermometer
СообщениеДобавлено: Вт сен 11, 2012 21:10:47 
Первый раз сказал Мяу!

Зарегистрирован: Пн июл 19, 2010 18:57:23
Сообщений: 35
Рейтинг сообщения: 0
Всем доброе время суток. Прошу помощи. На просторах нета наткнулся на такой проект RGB Ambient Thermometer http://s9y.ereet.st/index.php?/archives ... meter.html. Все построено на маленькой tiny13. Желание городить это все на компараторах не охота, да и плата будет громоздкая. Но вся загвоздка в том, что совсем не разбираюсь в программировании МК.
Планируеться сделать визуальную подсветку температуры компьютера, подсветку, вывести внизу корпуса на светодиодной ленте:
1. Изменить зависимость цвета свечения так: температура до 8 - белый (гореть будет очень редко), от 9 до 12 - фиолетовый, от 13 до 15 - голубой, от 16 до 18 - синий, от 19 до 27 - зеленый, от 28 до 35 - желтый, от 36 до 50 красный.
2. Добавить ключи для управления светодиодной лентой.

Я так понимаю, автор проекта использовал RESET как вход, но зачем тогда не задействовал pin3? Если запрогромировать RESET как вход, для перепрошивки понадобиться последовательный программатор, которого у меня, к сожалению, нет, вот тут эксперимент и застопорился. Где нужно менять переменные, которые отвечают за пороги срабатывания нужного выхода.
Буду признателен за помощь.

Прошивка
Спойлер/*
// 00000000 0x00 WHITE (GREEN + BLUE + RED)
// 00000001 0x01 CYAN (GREEN + BLUE)
// 00000010 0x02 PURPLE (BLUE + RED)
// 00000011 0x03 BLUE
// 00000100 0x04 YELLOW (GREEN + RED)
// 00000101 0x05 GREEN
// 00000110 0x06 RED
// 00000111 0x07 OFF
*/
#include <avr/interrupt.h>
#include <avr/io.h>
#include <avr/pgmspace.h>

//Linear Scale Display

volatile uint16_t curadc=0;
//instantaneous adc value

volatile uint8_t LEDcolor=0;
// which color led to be lit up

SIGNAL (SIG_OVERFLOW0)
{
TCNT0 = -1; // 9875 Hz
// TCNT0 = -3; // 3125 Hz
// TCNT0 = -5; // 1875 Hz
// TCNT0 - Timer/Counter Register

switch (LEDcolor) {
case 0: PORTB=0x07; // off
break;
case 1: PORTB=0x06; // red
break;
case 2: PORTB=0x04; // yellow
break;
case 3: PORTB=0x05; // green
break;
case 4: PORTB=0x01; // cyan
break;
case 5: PORTB=0x03; // blue
break;
case 6: PORTB=0x02; // purple
break;
case 7: PORTB=0x00; // white
break;
default: PORTB=0x00; // white
break;
}

ADCSRA = 0b11001111; // start conversion
}



SIGNAL (SIG_ADC)
{
curadc=ADC;
if(curadc >= 720) {
// if(curadc >= 715) { // 65F
LEDcolor=7; // white
return;
}
else if(curadc >= 712) {
// else if(curadc >= 710) { // 70F
LEDcolor=6; // purple
return;
}
else if(curadc >= 704) {
// else if(curadc >= 705) { // 72F
LEDcolor=4; // cyan
// LEDcolor=5; // blue
return;
}
else if(curadc >= 698) {
// else if(curadc >= 700) { // 76F
LEDcolor=5; // blue
// LEDcolor=4; // cyan
return;
}
else if(curadc >= 693) {
// else if(curadc >= 695) { // 81F
LEDcolor=3; // green
return;
}
else if(curadc >= 688) {
// else if(curadc >= 690) { // 85F
LEDcolor=2; // yellow
return;
}
else if(curadc >= 680) {
// else if(curadc >= 685) { // 92F
LEDcolor=1; // red
return;
}
else {
LEDcolor=0; // off
return;
}

}


int main(void)
{
PORTB = 0x07; // 00000111
DDRB = 0x07; // 00000111

TIMSK0 = 0b00000010; // Timer/Counter0 Overflow Interrupt Enable is set
// TIMSK0 - Timer/Counter Interrupt Mask Register
// ----------
// | - | - | - | - |OCIE0B|OCIE0A| TOIE0| - |
// | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
// ----------

TCCR0A = 0b00000000;
// TCCR0A - Timer/Counter Control Register A
// ----------
// |COM0A1|COM0A0|COM0B1|COM0B0| – | – | WGM01| WGM00|
// | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
// ----------

TCCR0B = 0b00000101; // Fed by System Clock of 9 600 000 divided by 1024 = 9375 Hz
// TCCR0B - Timer/Counter Control Register B
// ----------
// |FOC0A|FOC0B| – | – |WGM02| CS02| CS01| CS00|
// | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
// ----------

TCNT0 = -1; // 9875 Hz
// TCNT0 = -3; // 3125 Hz
// TCNT0 = -5; // 1875 Hz
// TCNT0 - Timer/Counter Register

ADMUX = 0b00000000; // ADC0 (PB5) is input to ADC
// ADMUX - ADC Multiplexer Selection Register
// ----------
// | - |REFS0|ADLAR| - | - | - | MUX1| MUX0|
// | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
// ----------

ADCSRA = 0b11001111; // Sampling rate is system clock divided by 128
// ADCSRA - ADC Control and Status Register A
// ----------
// |ADEN |ADSC |ADATE| ADIF| ADIE|ADPS2|ADPS1|ADPS0|
// | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
// ----------

DIDR0 = 0b00100000; // Disable Digital input buffer on PB5
// DIDR0 - Digital Input Disable Register 0
// ----------
// | – | – |ADC0D|ADC2D|ADC3D|ADC1D|AIN1D|AIN0D|
// | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
// ----------

sei();
// Global Interrupt Enable - Sets bit I in SREG

while(1){ };

}


Вложения:
Комментарий к файлу: Прошивка
rgb_temp.zip [6.06 KiB]
Скачиваний: 207
Комментарий к файлу: Схама проекта
rgb_temp.png [6.8 KiB]
Скачиваний: 592
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB Ambient Thermometer
СообщениеДобавлено: Вт сен 11, 2012 22:14:37 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 392
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7014
Откуда: Ижевск
Рейтинг сообщения: 0
Код:
if(curadc >= 720)

Вот эти >=.

_________________
Docendo discimus


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB Ambient Thermometer
СообщениеДобавлено: Ср сен 12, 2012 13:57:21 
Первый раз сказал Мяу!

Зарегистрирован: Пн июл 19, 2010 18:57:23
Сообщений: 35
Рейтинг сообщения: 0
Менял, в Протеусе по-моему не влияло, нужно тестировать в реале. Все упирается в порт РЕСЕТ, при повторной прошивке нужен будет последовательный программатор. Как перебросить вход АЦП на 3-ю ногу?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB Ambient Thermometer
СообщениеДобавлено: Ср сен 12, 2012 15:32:31 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 392
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7014
Откуда: Ижевск
Рейтинг сообщения: 0
В приложении перекинуто на РВ4.
Цитата:
в Протеусе по-моему не влияло

И не должно, там фузы заводские, на прием по ресету не настроенные. Вы и не настраивали надо полагать.


Вложения:
rgb_temp_1.rar [1.22 KiB]
Скачиваний: 188

_________________
Docendo discimus
Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: RGB Ambient Thermometer
СообщениеДобавлено: Пт сен 14, 2012 23:22:08 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3382
Рейтинг сообщения: 0
taxi911 писал(а):
Прошивка
Это исходник, а не прошивка.
Его компилировать надо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB Ambient Thermometer
СообщениеДобавлено: Сб сен 15, 2012 09:19:18 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 12
Рейтинг сообщений: 67
Зарегистрирован: Пт авг 27, 2010 05:57:06
Сообщений: 2482
Откуда: Тюмень
Рейтинг сообщения: 0
От кода похоже дурно пахнет, раз столько вопросов.
Запахи кода писал(а):
Магические константы (или просто Магия)

Цитата кликабельна.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB Ambient Thermometer
СообщениеДобавлено: Сб сен 15, 2012 22:48:26 
Первый раз сказал Мяу!

Зарегистрирован: Пн июл 19, 2010 18:57:23
Сообщений: 35
Рейтинг сообщения: 0
Мурик писал(а):
taxi911 писал(а):
Прошивка
Это исходник, а не прошивка.
Его компилировать надо.

Это понятно, прошивка внутри архива.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB Ambient Thermometer
СообщениеДобавлено: Вс сен 16, 2012 10:19:27 
Первый раз сказал Мяу!

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Сб сен 15, 2012 02:01:06
Сообщений: 39
Рейтинг сообщения: 0
вот смотри сылкуhttp://habrahabr.ru/post/65616/
я делал эту лампу, попроси старожилов что бы помогли переделать чутка код
так как сам в программировании не шарю.
лампа шикарная 256*256*256 оттенков
можно это все ограничить несколькими цветами
надеюсь помог

_________________
Когда уже ничего не помогает - прочтите, наконец, инструкцию.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB Ambient Thermometer
СообщениеДобавлено: Пн сен 17, 2012 22:54:57 
Первый раз сказал Мяу!

Зарегистрирован: Пн июл 19, 2010 18:57:23
Сообщений: 35
Рейтинг сообщения: 0
Это немного другой проект, да и Мега8 будет подороже и много места занимать, единственный плюс - ШИМ


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y