Apple-stijl LED pulserende met behulp van een MCU $1,30 (5 / 6 stap)

Stap 5: De code


Hier is mijn code.  Hopelijk is het goed genoeg heeft gereageerd.

 /* LED Pulsate with PWM */ #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/sleep.h> int main() { // Turn on LED output pin DDRB |= _BV(DDB0); // Clear OC0A on match TCCR0A |= _BV(COM0A1); // Set timer to count with F_CPU / 64 TCCR0B |= _BV(CS10); // F_CPU TCCR0B |= _BV(CS01) | _BV(CS00); // /64 prescale // Use Fast PWM, OCRA TOP TCCR0A |= _BV(WGM00); TCCR0A |= _BV(WGM01); //TCCR0B |= _BV(WGM02); // Initial value for our pulse width is 0 OCR0A = 0x00; uint8_t dir = 1; // Direction uint16_t div = 500; // # of clocks per inc/decrement uint16_t stall = 0; // Initial stall counter uint16_t stall_time = 500; // # of clocks to stall at top/bottom for(;;) { // We only want to update every div counts if(TCNT0 % div != 0) continue; // Stall at the top and bottom, and change direction if(OCR0A == 255 || OCR0A == 0) { // Switch directon at top if(OCR0A == 255) dir = -1; else { // Disable LED at bottom // And switch direction DDRB &= ~(_BV(DDB0)); dir = 1; } while(stall < stall_time) { ++stall; _delay_ms(10); } // Turn output back on if necessary if(OCR0A == 0) DDRB |= _BV(DDB0); stall = 0; } // General case - increment direction either way OCR0A += dir; } return 0; } 

Hopelijk is deze code zelf-documenterende. Kortom, veranderen wij de pulsbreedte elke paar honderd klokken in één richting of anderzijds. We hebben een speciaal geval voor wanneer we naar de bovenkant of onderkant (richting veranderen en blijven hangen), net als de Apple dingen doet. Er is een ander speciaal geval wanneer wij willen volledig uitschakelen van de LED op de bodem - als we dit niet doen, het heeft nog steeds een (1/256) % taakcyclus, en je kunt het zien. Anders moet de code vrij beknopt. Opbouwende kritiek aangemoedigd.

Gerelateerde Artikelen

Hoe maak je een enkele LED knipperen met behulp van een Arduino Uno Board

Hoe maak je een enkele LED knipperen met behulp van een Arduino Uno Board

Vandaag, we zullen worden ter illustratie van hoe maak je een enkele LED knipperen met behulp van een Arduino Uno-board. Door elke stap te volgen, zal je dit doel bereiken.U zal het volgende nodig:Een Arduino BoardBrood bordUSB-connectorkabelEEN LED3
LED licht met behulp van een Arduino

LED licht met behulp van een Arduino

Een Arduino is een open-source van de computerhardware, open-source software en microcontroller-gebaseerde kits voor het bouwen van digitale apparaten en interactieve objecten die kunnen voelen en aansturen van fysieke apparaten. Er zijn verschillend
Multi-Color LED Lamp met behulp van een 8-kanaals LED Controller v.3

Multi-Color LED Lamp met behulp van een 8-kanaals LED Controller v.3

ik wilde om te experimenteren met het gebruik van verschillende kleuren LEDs, dan de standaard RGB, Multi-Color om effecten te creëren in een functionele lamp.Deze lamp maakt gebruik van cyaan, Magenta, geel, roze, Aqua-groen, en blauw 5mm LED's same
Een LED dobbelsteen met behulp van een PIC 16F84 (of 16F88)

Een LED dobbelsteen met behulp van een PIC 16F84 (of 16F88)

Dit is een opnieuw afdrukken van een project dat ik een aantal jaren geleden maakte-ik was trawlvisserij het web, en ontdekte dat anderen had geboekt, dus heb ik besloten om de details hier op instructables.com - zodat anderen kunnen profiteren.Veel
3 x 3 x 3 led kubus met behulp van een 555 timer en een scala van 4020 shift IC - geen programmering (voor de complete beginner zoals ikzelf)

3 x 3 x 3 led kubus met behulp van een 555 timer en een scala van 4020 shift IC - geen programmering (voor de complete beginner zoals ikzelf)

zien van een video van een 8 x 8 x 8 led kubus op you-tube, leidde me naar de instructables website voor de eerste keer, nu ik ben verslaafd. Echter had ik of moet ik zeggen hebben een fundamenteel probleem absoluut geen ervaring of kennis van elektr
RGB LED Tutorial (met behulp van een Arduino) (RGBL)

RGB LED Tutorial (met behulp van een Arduino) (RGBL)

LED's zijn geweldig. Maar er een punt waar het opvlammen eenvoudigweg niet voldoende is bij elk project komt. Voor deze gevallen een RGB (rood, groen, blauw) is LED het antwoord.Elke kleur gloed met een RGB LED zult u kunnen tot uw hartje begeert.Bij
Een high-power LED zaklamp met behulp van een enkele AA-batterij

Een high-power LED zaklamp met behulp van een enkele AA-batterij

dit ontwerp hoogrenderende kan power LEDs op 100mA stroom en is niet veel groter dan de batterij die bevoegdheden. Het unieke circuit gebruikt 2 algemeen beschikbare transistoren (BC327 en BC337) in een oscillator te stimuleren de 1,2 of 1,5 volt uit
1.5V LED Flasher met behulp van een oude klok

1.5V LED Flasher met behulp van een oude klok

Hi... Dit is mijn eerste instructable! Ik had al knutselen met elektronica sinds mijn kindertijd... Ik ben nu een arts, maar ik nog steeds liefde gebouw en verkennen van schakelingen en leren hoe het spul werkt...LEDs oplichten niet in 1.5V meestal a
Multifunctionele LED spel met behulp van een ATmega32 Microcontroller

Multifunctionele LED spel met behulp van een ATmega32 Microcontroller

Ten eerste zijn mijn antwoorden op de Make-To-Learn wedstrijd:Wat heeft u te maken?Ik maakte een multifunctionele LED matrix-programma, zoals mijn vorige met Arduino UNO, maar dit keer maakte ik het met een ATmega32 microcontroller. Ik gebruikte rege
Met behulp van een MCU in uw circuit

Met behulp van een MCU in uw circuit

een hele nieuwe wereld aan uw circuits met behulp van microcontrollers kunt openen.  Terwijl het houden van hen eenvoudig en hard-wired in plaats van geprogrammeerde aardig is een alles, er komt een punt waar het schrijven van een programma voor een
Neen-edit popart stijl foto's met behulp van een frisbee maken

Neen-edit popart stijl foto's met behulp van een frisbee maken

Dit is een ingang in de digitale fotografie wedstrijd, dus stemmen als je it.Met alleen een oranje frisbee en een point & shoot camera kunt u pop-art stijl foto's gemakkelijk maken. Het grootste deel is dat er geen bewerking vereist.Stap 1: Omgehakt
Verstelbare RGB LED instelbaar met behulp van een Arduino

Verstelbare RGB LED instelbaar met behulp van een Arduino

dit project maakt gebruik van een Arduino Duo R3 en 3 drukknoppen waarmee een RGB LED.De 1ste knop selecteert welke kleur van de RGB LED die u wilt aanpassen. De andere 2 knoppen kunt u de helderheid van die kleur omhoog of omlaag.Er zijn 3 groene LE
555 RGB Rainbow LED Driver (niet met behulp van een 4029)

555 RGB Rainbow LED Driver (niet met behulp van een 4029)

| A_Teacher |OK, is dus voor zover ik kan vertellen, dit een uniek merk Nieuw ontwerp.Alle ruimte Cadets bellen: Als een manier van motiveren mensen om het project te maken, ik ben momenteel weggeven een 3 maand Instructables Pro lidmaatschap aan de
Met behulp van een RPi een RGB LED

Met behulp van een RPi een RGB LED

Als rahulkar vermeld in zijn tutorial, lijkt LED controle te zijn van de "Hello World" van elektronica. Het is gemakkelijk aan opstelling, leer je veel over de werking van elektronica, en in het einde, heb je een handig stukje hardware te pronke