Pokazywanie postów oznaczonych etykietą arduino. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą arduino. Pokaż wszystkie posty

niedziela, 2 marca 2014

Zabawa LEDami

Po wielu latach bezczynności udało się odpalić projekt Arduino ponownie... I trzeba się zacząć uczyć ponownie... To co mnie miło zaskoczyło to że jak tym razem zainstalowałem oprogramowanie Arduino to od razu wszystko zadziałało.

Któregoś dnia wykasowałem z googla+ przypadkowo wszystkie grafiki z bloga, przez co nie ma ich przy projektach... powoli je uzupełniam robiąc projekty na nowo. W końcu należy sobie wszystko przypomnieć.

W ramach przypomnienia zrobiłem sobie mały projekt z 10 LEDami i sobie le powłączałem i powyłączałem w różnych kombinacjach, poniżej kod... Zastanawiałem się czy nie można by go uprościć, np zrobić void on i off a potrm tylko on(1) zmienna z żarówką, którą chciałbym włączyć czy wyłączyć... może ktoś ma pomysł jak skrócić kod...

const int ledCount = 10;
int ledPins[] = { 4, 5, 6, 7, 8, 9,10,11,12,13 };

void setup() {
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    pinMode(ledPins[thisLed], OUTPUT); 
  }
}

void loop()
{
on1(); on2(); on3(); on4(); on5(); on6(); on7(); on8(); on9();  on10();
delay(500);
off1(); off2(); off3(); off4(); off5(); off6(); off7(); off8(); off9();  off10();
delay(500);
on1(); on2(); on3(); on4(); on5(); on6(); on7(); on8(); on9();  on10();
delay(500);
off1(); off2(); off3(); off4(); off5(); off6(); off7(); off8(); off9();  off10();
delay(1000);
 on1(); delay(100); on2(); delay(100); on3(); delay(100); on4(); delay(100); on5(); delay(100); on6(); delay(100); on7(); delay(100); on8(); delay(100); on9(); delay(100);  on10();delay(100);
off1(); delay(100); off2(); delay(100); off3(); delay(100); off4(); delay(100); off5(); delay(100); off6(); delay(100); off7(); delay(100); off8(); delay(100); off9(); delay(100);  off10();
delay(100);
on1(); delay(100); on2(); delay(100); on3(); delay(100); on4(); delay(100); on5(); delay(100); on6(); delay(100); on7(); delay(100); on8(); delay(100); on9(); delay(100);  on10();delay(100);
off1(); delay(100); off2(); delay(100); off3(); delay(100); off4(); delay(100); off5(); delay(100); off6(); delay(100); off7(); delay(100); off8(); delay(100); off9(); delay(100);  off10();
delay(1000);
on1(); delay(100); off1(); on2(); delay(100); off2(); on3(); delay(100); off3(); on4(); delay(100); off4(); on5(); delay(100); off5(); on6(); delay(100); off6(); on7(); delay(100); off7(); on8(); delay(100); off8(); on9(); delay(100); off9(); on10(); delay(100); off10();
delay(100);
on10(); delay(100); off10(); on9(); delay(100); off9(); on8(); delay(100); off8(); on7(); delay(100); off7(); on6(); delay(100); off6(); on5(); delay(100); off5(); on4(); delay(100); off4(); on3(); delay(100); off3(); on2(); delay(100); off2(); on1(); delay(100); off1();
delay(100);
on1(); delay(100); off1(); on2(); delay(100); off2(); on3(); delay(100); off3(); on4(); delay(100); off4(); on5(); delay(100); off5(); on6(); delay(100); off6(); on7(); delay(100); off7(); on8(); delay(100); off8(); on9(); delay(100); off9(); on10(); delay(100); off10();
delay(100);
on10(); delay(100); off10(); on9(); delay(100); off9(); on8(); delay(100); off8(); on7(); delay(100); off7(); on6(); delay(100); off6(); on5(); delay(100); off5(); on4(); delay(100); off4(); on3(); delay(100); off3(); on2(); delay(100); off2(); on1(); delay(100); off1();
delay(1000);
on1(); on10(); delay(100); on2(); on9(); off1(); off10(); delay(100); on3(); on8(); off2(); off9(); delay(100); on4(); on7(); off3(); off8(); delay(100); on5(); on6(); off4(); off7(); delay(100); off5(); off6(); delay(100);on5(); on6(); delay(100); on4(); on7(); off5(); off6(); delay(100); on3(); on8(); off4(); off7(); delay(100); on2(); on9(); off3(); off8(); delay(100); on1(); on10(); off2(); off9(); delay(100); off1(); off10(); 
delay(100);
on1(); on10(); delay(100); on2(); on9(); off1(); off10(); delay(100); on3(); on8(); off2(); off9(); delay(100); on4(); on7(); off3(); off8(); delay(100); on5(); on6(); off4(); off7(); delay(100); off5(); off6(); delay(100);on5(); on6(); delay(100); on4(); on7(); off5(); off6(); delay(100); on3(); on8(); off4(); off7(); delay(100); on2(); on9(); off3(); off8(); delay(100); on1(); on10(); off2(); off9(); delay(100); off1(); off10();
delay(1000);
}

void  on1(){ digitalWrite( 4, HIGH); }
void  on2(){ digitalWrite( 5, HIGH); }
void  on3(){ digitalWrite( 6, HIGH); }
void  on4(){ digitalWrite( 7, HIGH); }
void  on5(){ digitalWrite( 8, HIGH); }
void  on6(){ digitalWrite( 9, HIGH); }
void  on7(){ digitalWrite(10, HIGH); }
void  on8(){ digitalWrite(11, HIGH); }
void  on9(){ digitalWrite(12, HIGH); }
void on10(){ digitalWrite(13, HIGH); }

void  off1(){ digitalWrite( 4, LOW); }
void  off2(){ digitalWrite( 5, LOW); }
void  off3(){ digitalWrite( 6, LOW); }
void  off4(){ digitalWrite( 7, LOW); }
void  off5(){ digitalWrite( 8, LOW); }
void  off6(){ digitalWrite( 9, LOW); }
void  off7(){ digitalWrite(10, LOW); }
void  off8(){ digitalWrite(11, LOW); }
void  off9(){ digitalWrite(12, LOW); }
void off10(){ digitalWrite(13, LOW); }

środa, 24 sierpnia 2011

Moduł Line Follower


Moduł potrafi wykryć czarną oraz białą linię. W zależności od koloru na wyjściu "TTL signal" pojawi się stan wysoki albo niski. To chyba pierwsza funkcja dla początkujących budowniczych robotów jaką znalazłem w sieci. Produkt można kupić w SKLEPie. Myślę że można zbudować z tym czujnikiem dwie opcje... jedna to śledzenie linii a druga to poruszanie się w zamkniętym kojcu.

Właściwości :
  • napięcie zasilające 5V
  • pobór prądu <10mA
  • złącze 3pin (1-sygnał, 2- napięcie +5V, 3 - masa)
  • wyjście (czarna linia - stan niski, biała linia - stan wysoki)

Przykładowy kod dla dwóch czujników
w końcu mamy śledzić linię :), która będzie między nimi
w serial monitor możemy obserwować jak włączają się czujniki:

int stanczujnika1 = LOW;
int stanczujnika2 = LOW;
int val1 = 0;
int val2 = 0;

void setup()
{
  pinMode(12, INPUT);
  pinMode(13, INPUT);
  Serial.begin( 9600 );
}
void loop()
{
  val1 = digitalRead(12);
  val2 = digitalRead(13);

  if (val1 == HIGH) {
    if (stanczujnika1 == LOW) {
      Serial.println("czujnik 1");
      stanczujnika1 = HIGH;}
      }else {
      if (stanczujnika1 == HIGH){
      stanczujnika1 = LOW;}}
    
    if (val2 == HIGH) {
      if (stanczujnika2 == LOW) {
      Serial.println("czujnik 2");
      stanczujnika2 = HIGH;}
      }else {
      if (stanczujnika2 == HIGH){
      stanczujnika2 = LOW;}}
  }

...

poniedziałek, 22 sierpnia 2011

Serwo micro HK15178

...
SKLEP


...

Odbiornik podczerwieni 38kHz

...
SKLEP
OPIS
BIBLIOTEKA
BIBLIOTEKA 2

PRZYKŁADOWY KOD:


Piroelektryczny czujnik ruchu (IR)

...
int stanczujnika = LOW;
int val = 0;

void setup() {
  pinMode(13, OUTPUT);
  pinMode(2, INPUT);
  Serial.begin(9600);}

void loop(){
  val = digitalRead(2);
  if (val == HIGH) {
    digitalWrite(13, HIGH);
    if (stanczujnika == LOW) {
      Serial.println("Ruch wykryty!");
      stanczujnika = HIGH;}
  } else {
    digitalWrite(13, LOW);
    if (stanczujnika == HIGH){
      Serial.println("Brak ruchu!");
      stanczujnika = LOW;}
  }
}
...
SKLEP
MANUAL

...

sobota, 20 sierpnia 2011

Analogowy czujnik temperatury LM35

...
float temp;
void setup() {
  Serial.begin(9600);
};

void loop () {
  temp = analogRead(0)*500/1024.0;
  Serial.println(temp);
  delay(500);
};
...
SKLEP TROBOT
MANUAL
...

wtorek, 16 sierpnia 2011

Czujnik ultradźwiękowy odległości HC-SR04 ze wskaźnikiem led



W kolejnym projekcie wykorzystałem diody LED... każda z nich to 5cm odległości... 8 diod to jakieś 40 cm. Poniżej 5 cm wyłączają się wszystkie. skrypt pisałem sam... he he i działa... z pewnością można napisać go lepiej ale jak na moje umiejętności to i tak wydaje mi się że nieźle... jeżeli ktoś ma jakiś lepszy pomysł to proszę o sugestię. Może kiedyś jeszcze do tego wrócę :).

int impuls = 2;
int sonar = 3;
long czas, cm;

const int ledCount = 10;
int ledPins[] = { 4, 5, 6, 7, 8, 9,10,11,12,13 };

void setup() {
  pinMode(impuls, OUTPUT);
  pinMode(sonar, INPUT);
  
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    pinMode(ledPins[thisLed], OUTPUT);
     Serial.begin(9600);}
}

void loop()
{
  digitalWrite(impuls, LOW);
  delayMicroseconds(2);
  digitalWrite(impuls, HIGH);
  delayMicroseconds(10);
  digitalWrite(impuls, LOW);
  czas = pulseIn(sonar, HIGH);
  cm = mikrosekundynacentymetry(czas);
  if (cm >= 5){on1();}else{off1();}
  if (cm >= 10){on2();}else{off2();}
  if (cm >= 15){on3();}else{off3();}
  if (cm >= 20){on4();}else{off4();}
  if (cm >= 25){on5();}else{off5();}
  if (cm >= 30){on6();}else{off6();}
  if (cm >= 35){on7();}else{off7();}
  if (cm >= 40){on8();}else{off8();}
  if (cm >= 45){on9();}else{off9();}
  if (cm >= 50){on10();}else{off10();}

  Serial.print("Distance: [");
  Serial.print(cm);
  Serial.print("]cm\n");
  delay(100);}

long mikrosekundynacentymetry(long mikrosekundy)
{return mikrosekundy / 29 / 2;}

void  on1(){ digitalWrite( 4, HIGH); }
void  on2(){ digitalWrite( 5, HIGH); }
void  on3(){ digitalWrite( 6, HIGH); }
void  on4(){ digitalWrite( 7, HIGH); }
void  on5(){ digitalWrite( 8, HIGH); }
void  on6(){ digitalWrite( 9, HIGH); }
void  on7(){ digitalWrite(10, HIGH); }
void  on8(){ digitalWrite(11, HIGH); }
void  on9(){ digitalWrite(12, HIGH); }
void on10(){ digitalWrite(13, HIGH); }

void  off1(){ digitalWrite( 4, LOW); }
void  off2(){ digitalWrite( 5, LOW); }
void  off3(){ digitalWrite( 6, LOW); }
void  off4(){ digitalWrite( 7, LOW); }
void  off5(){ digitalWrite( 8, LOW); }
void  off6(){ digitalWrite( 9, LOW); }
void  off7(){ digitalWrite(10, LOW); }
void  off8(){ digitalWrite(11, LOW); }
void  off9(){ digitalWrite(12, LOW); }
void off10(){ digitalWrite(13, LOW); }
...

środa, 10 sierpnia 2011

Czujnik ultradźwiękowy odległości HC-SR04





Ultradźwiękowy czujnik odległości to kolejny element przydatny do zbudowania robota. Sklep: ALLEGRO - Smart Elektronic

Jak już się nauczyłem przy zakupie tego rodzaju rzeczy, dostaje się element a potem "radź sobie sam" czyli szukaj w sieci...

Tu znajdziemy wstępne informacje na stronie ARDUINO SOLUTIONS, w dolnej cześci znajdziemy link do danych technicznych i do przykładu.

Co zrobić z przykładem też nie do końca znalazłem. ale po kilku nieudanych próbach... gdzie przy kodzie pojawiały się ciągle błędy... odkryłem, że podobnie zapisane pliki znajdują się w katalogu LIBRARIES w oprogramowaniu ARDUINO... skopiowałem cały przykład do tego katalogu i wszystko zaczęło działać prawidłowo :)

Niemniej jednak przykład jest przeznaczony dla osób posiadających wyświetlacz LCD. A ja go jeszcze nie posiadam :)... więc trzeba było szukać dalej. szukaj a znajdziesz...


Poniższy kod umożliwia czytanie odległości w centymetrach. A zmierzoną odległość można zaobserwować na SERIAL MONITOR.

int impuls = 13;
int sonar = 12;
long czas, cm;

void setup() {
  pinMode(impuls, OUTPUT);
  pinMode(sonar, INPUT);
  Serial.begin(9600);
}

void loop()
{
  digitalWrite(impuls, LOW);
  delayMicroseconds(2);
  digitalWrite(impuls, HIGH);
  delayMicroseconds(10);
  digitalWrite(impuls, LOW);
  czas = pulseIn(sonar, HIGH);
  cm = microsecondsToCentimeters(czas);
  Serial.print("Distance: [");
  Serial.print(cm);
  Serial.print("]cm\n");
  delay(100);
}

long microsecondsToCentimeters(long microseconds)
{return microseconds / 29 / 2;}

centymetry liczy się przez czas jaki podróżuje dźwięk 340 m/s czyli 29 mikrosekund na każdy centymetr.

Pierwsze testy poszły pomyślnie :) Cieszę się że udało się go uruchomić.

kolejny działający kod... jest krótszy... przez co może bardziej skuteczny...

#include "Ultrasonic.h"
Ultrasonic ultrasonic( 6, 5 );

void setup()
{
  Serial.begin( 9600 );
}

void loop()
{
  Serial.print( ultrasonic.Ranging(CM) );
  Serial.println( "cm" );
   
  delay(500);
}


...

sobota, 23 lipca 2011

RGB z przyciskami

Kolejny projekt z żarówką RGB. Żeby go wykonać przyda 6 oporników (3 x 1k ohm i 3 x 10k ohm), trzy przyciski, żarówka RGB i kilka kabelków. Głównym problemem w projekcie są przyciski, po prostu nie trzymają się płytki montażowej. przez to nie do końca wszystko się styka... za pierwszym razem zestaw zadziałał od razu, przy drugim podejściu musiałem się nakombinować żeby przyciski działały. Podejrzewam że coś nie stykało... te przyciski non stop wylatują... może ktoś ma na nie jakiś pomysł. Tutorial znalazłem w sieci w kanale BRIKOGEEK na YouTube, więcej na ich stronie. Niestety bez schematu. projekt trzeba było odtworzyć z pliku wideo. Udało się :) zaczęło świecić, więc wydaje się, że chyba coś się nauczyłem ;). Poniżej kod do obsługi żarówki :)

int czerwony=3; 
int niebieski=5; 
int zielony=6; 
 
int wartoscczerwony=254; 
int wartosczielony=254; 
int wartoscniebieski=254; 
 
int przyciskwyboru = 8; 
int przyciskmniej = 9; 
int przyciskwiecej = 10; 
int wybranyled = 0; 
  
void setup()  
{  
  pinMode(przyciskwyboru, INPUT); 
  pinMode(przyciskmniej, INPUT); 
  pinMode(przyciskwiecej, INPUT); 
   
  analogWrite(czerwony, 255);   
}  
  
int pinLed = 0; 
  
void loop()  
{  
      
   int wartoscled = 0; 
 
   if (digitalRead(przyciskwyboru) == HIGH)  
   { 
      pinLed++;   
       
      if (pinLed > 2) { pinLed=0; } 
    
      analogWrite(czerwony, 0); 
      analogWrite(zielony, 0); 
      analogWrite(niebieski, 0);       
       
      while (digitalRead(przyciskwyboru) == HIGH) {  }             
      delay(10);
   } 
   
   if (digitalRead(przyciskwiecej) == HIGH)  
   {  
     if (pinLed == 0) { wartoscczerwony++; } 
     if (pinLed == 1) { wartosczielony++; } 
     if (pinLed == 2) { wartoscniebieski++; } 
      
     delay(5); 
    } 
     
   if (digitalRead(przyciskmniej) == HIGH)  
   {  
     if (pinLed == 0) { wartoscczerwony--; } 
     if (pinLed == 1) { wartosczielony--; } 
     if (pinLed == 2) { wartoscniebieski--; } 
      
     delay(5); 
    }         
     
    if (wartoscczerwony > 254) { wartoscczerwony=254; } 
    if (wartoscczerwony < 0) { wartoscczerwony=0; } 
     
    if (wartosczielony > 254) { wartosczielony=254; } 
    if (wartosczielony < 0) { wartosczielony=0; } 
 
    if (wartoscniebieski > 254) { wartoscniebieski=254; } 
    if (wartoscniebieski < 0) { wartoscniebieski=0; }     
 
  if (pinLed == 0) { analogWrite(czerwony, wartoscczerwony); } 
  if (pinLed == 1) { analogWrite(zielony, wartosczielony); } 
  if (pinLed == 2) { analogWrite(niebieski, wartoscniebieski); } 
  
}
 
...

czwartek, 14 lipca 2011

RGB przejście kolorów

Zabawa ledami mnie wciągnęła do końca... :) Podnieśmy poprzeczkę i podłączmy diodę RGB i pobawmy się trochę kolorami. Diodę RGB podłączamy jak na załączonych rysunkach. Dioda RGB ma 4 nóżki (czerwona, masa, zielona i niebieska) masa jest dłuższa niż pozostałe. Do kolorów podłączamy oporniki 220 OHM.

Poniżej kod sterujący diodą RGB. Żeby wzmocnić efekt świecenia diody można na nią założyć piłeczkę pingpongową. :) Jest na co popatrzeć.

int czerwony;
int zielony;
int niebieski;


void setup()
{
  czerwony = 255;
  zielony = 255;
  niebieski = 255;
}


void loop()
{
  zmiana_koloru(&czerwony,   1);
  zmiana_koloru(&zielony,    1);
  zmiana_koloru(&czerwony,   0);
  zmiana_koloru(&niebieski,  1);
  zmiana_koloru(&czerwony,   1);
  zmiana_koloru(&zielony,    0);
  zmiana_koloru(&czerwony,   0);
  zmiana_koloru(&niebieski,  0);
}


void zmiana_koloru(int* wartosc, int kolor)
{
  for (int i = 0; i < 255; i++)
  {
    if (kolor)
      (*wartosc)--;
    else
      (*wartosc)++;
     
    wyswietl();
    delay(10);
  }
}
void wyswietl()
{
  analogWrite(6 czerwony);
  analogWrite(5, zielony);
  analogWrite(3, niebieski);
}

piątek, 8 lipca 2011

LED - ZACIEMNIANIE

Kontynuujemy zabazę z LEDem podpiętym do PINu 11. Jest to wyjście cyfrowe, które umożliwi sterowanie zarówno włączeniem LEDu jak i jego jasnością.

int jasnosc = 0;
 int zaciemnienie = 1;

void setup()  {
   pinMode(11, OUTPUT);
 }

void loop()  {
   analogWrite(11, jasnosc);   
   jasnosc = jasnosc + zaciemnienie;
  if (jasnosc == 0 || jasnosc == 255) {
     zaciemnienie = -zaciemnienie ;
  }
   delay(30);                           
 }

int - definiujemy zmienne: jasność początkowa LEDu = 0 oraz miana z jaką chcemy zmieniać jasność w tym przypadku 5, możemy ją zmieniać dowolnie... Ściemnienie i rozjaśnianie będzie szybsze lub wolniejsze. Wartość maksymalna 255.
if - funkcja jeżeli... (jasność =0 lub 255) to zmień wartość zmiany na (+) lub (-) czyli będziemy raz obserwować wzrost wartości od 0 do 255 a jak osiągniemy tą wartość to zmieni się znak przy formule i zacznie odejmować.

Proste, nie?

LED - S.O.S.

Podpinamy LEDa np. do PINu 8, nadajmy wiadomość kodem morsa.

Najpierw definiujemy kropkę - void kropka() i kreskę - void - kreska(), określamy długości podświetlenia diody i jej wyłączenia. np. dla kropki 1/4 sekundy a dla kreski 1 sekunda.

Następnie układamy w pętli kolejność wyświetlania (3 kropki, 3 kreski, 3 kropki), po każdej serii 1/2 sekundy przerwy, na końcu 3 sekundy opóźnienia i od nowa.


void setup()
{
  pinMode(8, OUTPUT);
}

void loop()
{
  kropka(); kropka(); kropka();
  delay(500);
  kreska(); kreska(); kreska();
  delay(500);  
  kropka(); kropka(); kropka();
  delay(3000);
}

void kropka()
{
  digitalWrite(8, HIGH);
  delay(250);
  digitalWrite(8, LOW);
  delay(250);
}

void kreska()
{
  digitalWrite(8, HIGH);
  delay(1000);
  digitalWrite(8, LOW);
  delay(250);
}

Określanie własnych funkcji poza pętlą i odwoływanie się do nich przyda się z pewnością przy budowie robota. Jeżeli uda się określić różne funkcje przy różnych odczytach urządzeń pomiarowych to będzie można realizować różne czynności w zależności od zaistniałej sytuacji.

czwartek, 7 lipca 2011

LED-MIGANIE, pierwszys projekt

Zaraz jak przyjdzie płytka, ściągamy ostatnią wersję programu, służącego do komunikowania się komputera z urządzeniem, który znajduje się na stronie ARDUINO.CC . Jest on dostępny dla Windows, MAC OS, oraz Linuxa. Podłączamy płytkę kablem USB. Ja pracuję na Windowsie 7 64bit. Ściągnięty program rozpakowujemy i zamieszczamy tam gdzie chcemy, na pulpicie czy też na dysku zewnętrznym. Nie trzeba go instalować.

Wykrywa płytkę ale brak mu sterowników. Sterowniki znajdują się w pliku ściągniętym z sieci. U mnie Arduino zaintalowało się na COM3. Trzeba jeszcze wybrać z listy płytkę jeżeli nie została wykryta, no i port komunikacji... np. COM3. Wszytko opisane tutaj .

Dodatkowo możemy ściągnąć z sieci program Fritzing, który umożliwi nam zapisanie graficzne projektu, co w przyszłości pozwoli na jego łatwe odtworzenie. W tym programie przygotowałem większość grafik na tym blogu.

No i gotowe... możemy zainstalować na płytce pierwszy programik. Arduino posiada własny LED oznaczony strzałką jest on podłączony do pinu 13 i ma własny opornik. Przynajmniej tak jest w opisach urządzenia. Możemy ożywić tego LEDa i zacząć nim błyskać. W tym celu do programu komunikacyjnego trzeba wpisać poniższy skrypt:

void setup() {              
  pinMode(13, OUTPUT);   // informujemy płytke ze pod pinem 

                         // 13 bedzie wyjscie sygnalu
                         // w tym przypadku LED
}

void
loop() {
  digitalWrite(13, HIGH);   // wlacza LEDa
  delay(1000);              // czeka sekunde
  digitalWrite(13, LOW);    // wylacza LEDa
  delay(1000);              // czeka sekunde
}
Program znajduje się również w oprogramowaniu ARDURINO w przykładach.

I tu można się trochę pobawić zmieniając czas oczekiwania.


viod setup () - informujemy Arduino co gdzie may podłączone
void loop () - miejsce gdzie wpisujemy komendy, które będą powtarzane w pętli.
pinMode () - określamy funkcję pinu czy ma on wysyłać dane czy je odbierać (OUPUT / IMPUT)
// - komentaż... którego program nie widzi.
delay() - opóźnienie, w którym jest lub nie jest realizowana jakaś czynność 1 sek = 1000
digitalWrite() - odnosi się do podłączeń cyfrowych.

Do PINu 13 możemy również podłączyć zewnętrznego LEDa, bez opornika, gdyż ponoć on tam jest. Nie mniej jednak w przykładach na stronie ARDUINO.CC\BLINK opornik jest załączony.



Do każdego innego PINu podłączamy żaróweczkę LED z opornikiem 220 OHM: