Отговори на тема  [ 75 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5  Следваща
мултифункционален бутон + PWM 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Юни 21, 2011 9:51 pm
Мнения: 46
Местоположение: Bulgaria
Мнение 
#include <16F627A.h>

#FUSES NOWDT //No Watch Dog Timer
#FUSES PUT //Power Up Timer
#FUSES INTRC_IO //Internal RC Osc, no CLKOUT
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O

#use delay(int=4000000)


това е моя .h който получих


Пон Юли 04, 2011 12:20 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30684
Местоположение: София
Мнение 
Единствената разлика е в fast IO, .h файла не се генерира автоматично, в него могат да се слагат доста други неща, в случая съм сложил деректива за fast IO, стандартно CCS бута трис регистър като имаш операция с изход, с тази команда не го прави, всъщност аз никъде не изпозлвам команди за работа с IO-то а го бутам директно но ... :)
Така все пак малко поогледах, не знам по горе как съм го дал,ама бях сложил малък делител на таймер 2 и PWM ти беше на 16 Khz и общо взето не беше много добре с оглед всички сметки които с еправят за софтуерен PWM та от там PWM не беше много равномерен. Добавих и една проверка за фронта така че да не чете всеки път таймер 2 и да го сравнява, което също подобрява линейността на PWM-а, по долу е корекцията
#include "D:\MyDocuments\Isdelia\LED Test\main.h"
#bit red=0x05.0
#bit green=0x05.1
#bit blue=0x05.2

char color;
int8 duty;
int8 state;
int1 direction;
int1 front;
struct state_type {
char color;
int1 red;
int1 green;
int1 blue;
int1 direction;}states[9];
// --------------- Timer 2 interrupt
#int_TIMER2
void TIMER2_isr(void)
{
front=true;
switch(color){ //----------- rising edge
case 'r': red=direction; break;
case 'g': green=direction; break;
case 'b': blue=direction; break;}
}
//---------------- Timer 1 interrupt
#int_TIMER1
void TIMER1_isr(void)
{
set_timer1(20500); // this parameter reflect on duty change speed
if(duty>249) {
duty=10;
if (state<8){
state++;}
else {
state=0;}
color=states[state].color;
red=states[state].red;
green=states[state].green;
blue=states[state].blue;
direction=states[state].direction;}
else{
duty+=5;}
}
// -------------------- main program
void main()
{
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_8);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
setup_timer_2(T2_DIV_BY_16,255,1);
setup_comparator(NC_NC_NC_NC);
enable_interrupts(INT_TIMER1);
enable_interrupts(INT_TIMER2);
enable_interrupts(GLOBAL);
set_tris_a (0);
state=0;
duty=10;
color='r';
direction=1;
//------------------------------------ sate parameters
states[0].red=0, states[0].green=0 , states[0].blue=0 , states[0].direction=1, states[0].color='r';
states[1].red=1, states[1].green=0 , states[1].blue=0 , states[1].direction=1, states[1].color='g';
states[2].red=1, states[2].green=1 , states[2].blue=0 , states[2].direction=1, states[2].color='b';
states[3].red=1, states[3].green=1 , states[3].blue=1 , states[3].direction=0, states[3].color='r';
states[4].red=0, states[4].green=1 , states[4].blue=1 , states[4].direction=0, states[4].color='g';
states[5].red=0, states[5].green=0 , states[5].blue=1 , states[5].direction=0, states[5].color='b';
states[6].red=1, states[6].green=0 , states[6].blue=0 , states[6].direction=1, states[6].color='r';
states[7].red=1, states[7].green=0 , states[7].blue=0 , states[7].direction=1, states[7].color='r';
states[8].red=1, states[8].green=0 , states[8].blue=0 , states[8].direction=1, states[8].color='r';
//------------------------- main loop
while(1){
restart_wdt();
if(front && get_timer2()>duty){ // falling edge when achive needing duty
front=false;
switch(color){
case 'r': red=!direction; break;
case 'g': green=!direction; break;
case 'b': blue=!direction; break;}
}
}
}

давам я цялата за да не стане грешка, и картинка от протеуса, определено си личи по плавния ШИМ и то при по малка константа на филтъра.


Прикачени файлове:
led.jpg
led.jpg [ 63.44 KiB | Прегледано 2382 пъти ]
Пон Юли 04, 2011 8:52 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Юни 21, 2011 9:51 pm
Мнения: 46
Местоположение: Bulgaria
Мнение 
този код вече работи :) има над какво да се мъча.
остава да го разбера и да добавя моя бутон.

А може ли да попитам как най лесно да увелича времето за за светване примерно сега от изгаснал до пълна ярокст му трябват около 2 секунди как мога да ги направя 30 секунди или минута


Вто Юли 05, 2011 4:04 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30684
Местоположение: София
Мнение 
Там има един коментар, set_timer1(20500); на ето това, като правиш числото по малко се увеличава времето през което се инкрементва параметъра на PWM-а, освен това в момента след тоя код имаш
else{
duty+=5;}
}

това на всяка стъпка ти променя запълването с 5 ( 5/255 ), ако го направиш 1 също ще увеличиш времето 5 пъти. Та като си играеш с тия двата параметъра можеш да постигнеш тия времена.


Вто Юли 05, 2011 10:35 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30684
Местоположение: София
Мнение 
Какво стана колега, докъде го докара с преливането ....


Нед Юли 17, 2011 9:36 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Юни 21, 2011 9:51 pm
Мнения: 46
Местоположение: Bulgaria
Мнение 
всичко е ок със кода много съм доволен .... но се боря със други неща във момента :) - със местенето на един 300кг камък за водопада .... както и със жалките опити да отдалеча една антенана от апаратура за хеликептерче на 40Мхз ..... :evil: нои това ще мине ... като е готово ще кача клипче снимки абе всичко щот засега съм много доволен :)


Пон Юли 18, 2011 5:07 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30684
Местоположение: София
Мнение 
:) хех добре .. за камъка .... и там може да се помогне, 300 кг колко са ... ние по 20-30 тона местим :)


Вто Юли 19, 2011 7:52 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 17, 2005 5:07 pm
Мнения: 813
Местоположение: Сливен
Мнение 
Айде и аз ще прежаля още една цигара и ще дойда за камъка ... няма само бат' Тони да яде кибапите :P


Сря Юли 20, 2011 9:26 am
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Юни 21, 2011 9:51 pm
Мнения: 46
Местоположение: Bulgaria
Мнение 
неочаквах тук да намеря хамалка помощ , всестранно развит форум :)
ще в имам предвид :partyman:

иначе 300кг не са много , но е тясно , могат да се по берат само двама, от еднста страна е езерото от другата алпинеума а той трябва да кацне някъде над езерото аххахахахахах. но да не ви занимавам с такива проблеми

по скоро някой ако може да разясни защо на приемника като му сложа една стоманена пръчка 20см хваща без проблем , като свържа пръчката и приемника със 60 см коаксялен кабел (понеже е екраниран) спира да приема ?...

трябва да сложа тънка жица ли ??? но как ще предпазя от смущения и да не действа самата тя като антена.
(просто си разсъждавам на "глас")


Чет Юли 21, 2011 2:23 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение 
Защото трябва и рефлектор.


Чет Юли 21, 2011 2:34 pm
Профил ICQ WWW
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Юни 21, 2011 9:51 pm
Мнения: 46
Местоположение: Bulgaria
Мнение 
ще го сложа пред сателитната чиния и ще видиме :D


Чет Юли 21, 2011 2:38 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Юни 21, 2011 9:51 pm
Мнения: 46
Местоположение: Bulgaria
Мнение Re: мултифункционален бутон + PWM
ето го крайния резултат .. но фотоапарата нямаше настройки на видеото и е доста лошо и по тъмно от колкото е :)

http://vbox7.com/play:2bf18a02cd

от долу са снимки на лампите които правих за водопата , контролера и самия водопад


Прикачени файлове:
1And2more_tonemapped.jpg
1And2more_tonemapped.jpg [ 7.21 MiB | Прегледано 2371 пъти ]
IMG_5943.JPG
IMG_5943.JPG [ 72.36 KiB | Прегледано 2371 пъти ]
IMG_5945.JPG
IMG_5945.JPG [ 83.11 KiB | Прегледано 2371 пъти ]
Вто Сеп 06, 2011 1:31 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Юни 21, 2011 9:51 pm
Мнения: 46
Местоположение: Bulgaria
Мнение Re: мултифункционален бутон + PWM
:evil:
имам нужда пак от малко помощ ама във хардуерната част ...

значи като ги включих ламБите работеха 2 дена без проблем но после почнаха да светят 20-30 секунди и да гаснат. След няколко сметки установих че лентите са към 20w(1,5m) а трансформатора койо го имах беше твърде слаб. Затова взех нов читав на 30w.
НО след като го сложа него свеи 2 часа и тотално изгаснаха. Мисля че проблема е във стабилизаора който е 78м05 защото грее ужасно много още на първата секунда. ако го сменя с по мощен който пропуска 2А ще се решили проблема или да си поръчвам това http://www.ebay.com/itm/DC-DC-HRD-Conve ... 3a67941882

или някакви други решения схмета ми е тази


Прикачени файлове:
schematic RGB101D.jpg
schematic RGB101D.jpg [ 111.2 KiB | Прегледано 2299 пъти ]
Съб Сеп 24, 2011 12:20 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 03, 2005 2:21 am
Мнения: 12764
Местоположение: София
Мнение Re: мултифункционален бутон + PWM
Има нещо сгрешено...

Според схемата която си дал, светодиодите са свързани преди стабилизатора. При теб така ли е? Какво е напрежението на трансформатора?

Схемата има ли нещо общо с реалното устройство?


Съб Сеп 24, 2011 12:41 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Юни 21, 2011 9:51 pm
Мнения: 46
Местоположение: Bulgaria
Мнение Re: мултифункционален бутон + PWM
да така са свързани след първия кондензатор... (ако бяха след стабилизатора лентите нямаше да светят щот там е 5v а имат нужда от 12)

схемата на мойто устройство е същата само че има 2 канала за легулиране на цветовете (две ленти) и след стабилизатора има включен приемник от едно старо хеликоптерче което го ползвам за дистанционно , но след като го изключих да не харчи то ток ефекта беше същия.

до колкото четох тези стабилизатори работят няй добре като свалят примерно от 7-8v ток . като била разликата по голяма много греели а при по голяма сила ставало ептен зле.


какво може да е сгрешено да направя някаква проверка въпреки че ме съмнява да има грешка

трансформатора е 12v 2,5ампера 30w


Съб Сеп 24, 2011 2:18 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 75 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни