Sie sind auf Seite 1von 7

KNIGHT RIDER

This project makes use of 8 LEDs connected to the pins 2 - 9 on the board using 470 hm resistors! The
source code "i## make the LEDs b#ink b$ using on#$ digita#%rite&pin'um()*+),L%- and de#a$&time-! This
project "i## b#ink LED in se.uence one b$ one from right to #eft( after that a## LED "i## b#ink and #ast it "i##
b#ink in se.uence from #eft to right and "i## #ooping unti# it stop!
SYSTEM ARCHITECTURE AND OPERATION
TASK DESCRIPTION
Task / 0#ink LED in se.uence from right to #eft!& de#a$ 200 mi#isecond-
Task 0 0#ink a## LED at one! de#a$ 200 mi#isecond-
Task 1 0#ink LED in se.uence from #eft to right!& de#a$ 200 mi#isecond-
*d#e task "here nothing happen
Power
supply
Arduino Uno
microcontrolle
r
Blink
LED
LED
Blink
LED Blink
from right to
left
All LED Blink
LED Blink
from left to
right
Idle task
Task 1 Task Task !
FLOWCHART
start
"ET LED PI#
to $ at
Power supply
LED Blink in
se%uence from
right to left All
LED Blink at
the same time
All LED Blink at
the same time
LED Blink at
the same time
All LED Blink at
the same time
LED Blink in
se%uence from
left to right All
LED Blink at
the same time
All LED Blink at
the same time
Result
/* Knight Rider 1
* Basically an extension of Blink_LED.
*/
#include !reeR"#$.h
#include task.h
#include %rduino.h
#include &e'ory!ree.h
static (oid (Blink"ask) (oid **(+ara'eters ,-
static (oid (+rint"ask) (oid **(+ara'eters ,-
#ifndef +./$_DE!./ED
int *in0 1 0-
int *in2 1 2-
int *in3 1 3-
int *in4 1 4-
int *in5 1 5-
int *in6 1 6-
int *in7 1 7-
int *in8 1 8-
int ti'er 1 099-
(oid setu*) (oid ,
:
$erial.;egin)46599,-
$erial.*rintln)__!.LE__,-

/* <reate the tasks defined =ithin this file. */
x"ask<reate) (+rint"ask> ) signed *ort<?%R * , (+rint"ask> 109> /@LL>
tsk.DLE_+R.#R."A> /@LL ,-

x"ask<reate) (Button"ask> ) signed *ort<?%R * , (Button"ask> 69> /@LL>
tsk.DLE_+R.#R."A> /@LL ,-
$erial.*rint)!REE1,-
$erial.*rintln)free&e'ory),,-
("ask$tart$cheduler),-
B
(oid loo*) (oid ,
:
B
/*CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC*/
static (oid (Blink"ask) (oid * ,
:
*in&ode)*in0> #@"+@",-
*in&ode)*in2> #@"+@",-
*in&ode)*in3> #@"+@",-
*in&ode)*in4> #@"+@",-
*in&ode)*in5> #@"+@",-
*in&ode)*in6> #@"+@",-
*in&ode)*in7> #@"+@",-
*in&ode)*in8> #@"+@",-
B
(oid loo*), :
//task 1 ;link led fro' right to left
digitalDrite)*in0> ?.E?,-
delay)ti'er,-
digitalDrite)*in0> L#D,-
delay)ti'er,-
digitalDrite)*in2> ?.E?,-
delay)ti'er,-
digitalDrite)*in2> L#D,-
delay)ti'er,-
digitalDrite)*in3> ?.E?,-
delay)ti'er,-
digitalDrite)*in3> L#D,-
delay)ti'er,-
digitalDrite)*in4> ?.E?,-
delay)ti'er,-
digitalDrite)*in4> L#D,-
delay)ti'er,-
digitalDrite)*in5> ?.E?,-
delay)ti'er,-
digitalDrite)*in5> L#D,-
delay)ti'er,-
digitalDrite)*in6> ?.E?,-
delay)ti'er,-
digitalDrite)*in6> L#D,-
delay)ti'er,-

digitalDrite)*in7> ?.E?,-
delay)ti'er,-
digitalDrite)*in7> L#D,-
delay)ti'er,-

digitalDrite)*in8> ?.E?,-
delay)ti'er,-
digitalDrite)*in8> L#D,-
delay)ti'er,-

//task 0 ;link all led
/*CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC*/
static (oid (Blink"ask) (oid * ,
:
digitalDrite)*in0> ?.E?,-
digitalDrite)*in2> ?.E?,-
digitalDrite)*in3> ?.E?,-
digitalDrite)*in4> ?.E?,-
digitalDrite)*in5> ?.E?,-
digitalDrite)*in6> ?.E?,-
digitalDrite)*in7> ?.E?,-
digitalDrite)*in8> ?.E?,-
delay)ti'er,-
digitalDrite)*in0> L#D,-
digitalDrite)*in2> L#D,-
digitalDrite)*in3> L#D,-
digitalDrite)*in4> L#D,-
digitalDrite)*in5> L#D,-
digitalDrite)*in6> L#D,-
digitalDrite)*in7> L#D,-
digitalDrite)*in8> L#D,-
delay)ti'er,-

//task 2 ;link led fro' left to right
/*CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC*/
static (oid (Blink"ask) (oid * ,
:
digitalDrite)*in8> ?.E?,-
delay)ti'er,-
digitalDrite)*in8> L#D,-
delay)ti'er,-

digitalDrite)*in7> ?.E?,-
delay)ti'er,-
digitalDrite)*in7> L#D,-
delay)ti'er,-

digitalDrite)*in6> ?.E?,-
delay)ti'er,-
digitalDrite)*in6> L#D,-
delay)ti'er,-
digitalDrite)*in5> ?.E?,-
delay)ti'er,-
digitalDrite)*in5> L#D,-
delay)ti'er,-
digitalDrite)*in4> ?.E?,-
delay)ti'er,-
digitalDrite)*in4> L#D,-
delay)ti'er,-
digitalDrite)*in3> ?.E?,-
delay)ti'er,-
digitalDrite)*in3> L#D,-
delay)ti'er,-
digitalDrite)*in2> ?.E?,-
delay)ti'er,-
digitalDrite)*in2> L#D,-
delay)ti'er,-
B

Das könnte Ihnen auch gefallen