E-simulators dawn

Ēriks Vilhelms, izmantojot mikrokontrolleru varēja noteikt imitēšana rītausmas savās stundās. Noteiktā laikā ierīce sāk spīdēt nokrāsas, spilgtumu, kas arī ir konfigurēta caur kodu.

E-simulators dawn

E-simulators dawn

E-simulators dawn

Solis 1: Gaisma
Tālu nav noslēpums, ka ir jau gatavi līdzīgas ierīces, ko var iegādāties elektronikas preču veikalā. Viss projekts ir atkarīga no elektronisko pulksteņu markas Soleil Alarm, kuru var iegādāties oficiālā mājas lapā tāda paša nosaukuma kompānija.
Arī nevar iztikt arī nepērkot citu elektronisko elementu dažādos interneta veikalos.
Solis 2: Sastāvdaļas
  1. Mikrokontrolleri Atmel ATMEGA8-16PI (labāk pirkt uzreiz vairākus, ja pēkšņi nodeg).
    Оптрон 4N35.
    Kaste ar led zilā krāsā.
    Regulators 5 P.
    Rezistori uz 1 ist un 470 Omi.
    Vadi.
    [ol]

    E-simulators dawn

    Solis 3: Pulksteņa
    Kontrolieris 300 W skan signāls 0-5, kas iet ar datu portu.

    E-simulators dawn

    E-simulators dawn

    E-simulators dawn

    Solis 4: Led
    Ja aizdomāties par to, kā pievienot ārējo tranzistors, tad te var saskarties ar zemu spilgtuma līmeni.
    Tāpēc labāk uzreiz iegādāties mikrokontrolleru, lai izveidotu labu PWM signālu, 16 bit, lai saglabātu vienmērīgu gaismu, kas frekvencē 130 Hz.
    E-simulators dawn

    Solis 5: Funkcija
    PWM signāls ir nekādā ziņā nav lineāri. Mūsu stundas ir 44 diskrēto soli. Attiecīgi, var veidot eksponenciālu funkciju:
    f(x) = A(1-exp (- (Bx + D)x + C) ).
    E-simulators dawn

    E-simulators dawn

    E-simulators dawn

    Solis 6: Ķēdes
    Savākt elektrisko ķēdi no šīs shēmas.
    Solis 7: Mikrokontrolleri
    Mums ir nepieciešams sastādīt kodu mikrokontrolleru caur WinAVR un AVR Studio.
    E-simulators dawn

    Solis 8: Vadi
    Vadi, kas iet no программатора uz AMEGA8 inl 1 7 (VCC), 8 (GND), 171819 20 (AVC), 21 (AREF) un 22 (GND).
    9. Solis: Programmas
    Šajā gadījumā mikrokontrolleru kalpo kā nelineāra PWM filtrs. Programma aprēķina sākuma laiks, kontroles līmeni led un atbrīvot PWM signālu.
    Kods pats par sevi ir Ērika Vilhelma zemāk ar saviem komentāriem.
    [spoiler] /* LED microcontroller dimmer for use with Soleil Sun AlarmWritten for Atmel ATMega8 and avr-gccEric J. WilhelmSquid Labs, LLCAttribution-NonCommercial-ShareAlike 2.5 You are free: * to copy, distribute, display, and perform the work * to make derivative worksUnder the following conditions:by Attribution. You must attribute the work in the manner specified by the author or licensor.Noncommercial. You may not use this work for commercial purposes.Share Alike. If you mainīt, pārveidot, or build upon this work, you may distribute the resulting work only under a license identical to this one. * For any atkārtoti or distribution, you must make clear to others the license terms of this work. * Any conditions of these can be waived if you get permission from the copyright holder.*/#include #include #include #include #include # define OC1 PB1# define DDROC DDRB# define OCR OCR1Avolatile uint16_t xtimer;volatile uint16_t timer0;volatile uint8_t status;SIGNAL(SIG_OVERFLOW0){timer0++; TCNT0=96; //iepriekšielādēt with the timer 96 to make this interrupt occur every 20 us.}SIGNAL(SIG_OVERFLOW1){//The interrupts don ' t work properly without this definīcija.}//falling edge PWM signal (rising edge at clock; reversed due to optoisolator)SIGNAL(SIG_INTERRUPT1) {//Zero timer0 to count the length of the positive pulse timer0=0; status=1;}//rising edge PWM signal (falling edge at clock; reversed due to optoisolator)SIGNAL(SIG_INTERRUPT0) {//record the length of the positive pwm signal in xtimer //timer0 if is greater than approximately 263 (at 20 us per interrupt) than the pulse bija missed if(timer00;i--) {x(i) = x(i-1);} x(0) = xtimer; y=0; for(i=0;i 0;i--) {t(i) = t(i-1);} //determine what to do if(timer0> 270 && status == 1 && on == 1) {//Turn light on t(0) = 0; on=1;} else if(timer0> 270 && status == 0) {//Turn light off, t(0) = 65535; xtimer=0; on=0; oncounter=0;} else if(timer065535) t(0) = 65535; if(t(0)270 but there ' s a positive pulse on the PWM //this happens during the very start of a sunrise, when the clock's PWM hasn 't diezgan turned on at the right frequency else if(timer0> 270 && status == 1) {if(++oncounter==5) {on = 1; oncounter=0;}} //the average output so it doesn' t jump around u=0; for(i=0;i <100;i++) {="" u="u+t(i);" }="" change="" the="" output="" pwm="" ocr="u/100;" }="" return="" (0);}="">
    E-simulators dawn

    E-simulators dawn

    Solis 10: Kabelis
    Izmantojam 2 kontaktligzdas un vadi, lai veikt pilnvērtīgu kabeli.
    Solis 11: Connect
    Pievienojiet kaste ar gaismas diodēm pulksteņiem.