Arduinon alkeet 22.02.-23.02.




-- DC-moottorin ohjaamista ---

H-silta, itse rakennettuna H-silta
Tai sitten kaupasta valmis shieldi
-- ohelma 6 - Painonapin lukeminen ----

int pushButton = 3;

void setup() {
  Serial.begin(115200);

  pinMode(pushButton, INPUT);
}

void loop() {

  int buttonState = digitalRead(pushButton);

  Serial.println(1 - buttonState);

  delay(10);
}



Ledien RBG arvojen laskentaan: http://www.calculatorcat.com/free_calculators/color_slider/rgb_hex_color_slider.phtml

-- ohjelma 5 - RGB-led ----

int red_pin = 9;
int green_pin = 10;
int blue_pin = 11;

void setup() {
  pinMode(red_pin, OUTPUT);
  pinMode(green_pin, OUTPUT);
  pinMode(blue_pin, OUTPUT);
}

void loop() {
  
  int  red = 255;
  int  green = 0;
  int  blue = 0;
  
  analogWrite(red_pin, 255 - red);
  analogWrite(green_pin, 255 - green);
  analogWrite(blue_pin, 255 - blue);
}


-- ohjelma 4 - serialpalkkimittari ---

void setup() {
  pinMode(A0, INPUT);
  Serial.begin(115200);
}

void loop() {
  int sensorValue = analogRead(A0);

// Tulostetaan luku aina neljän merkin pituisena, lisätään eteen tyhjää
  if (sensorValue < 10) {
      Serial.print("   ");
  } else if (sensorValue < 100) {
      Serial.print("  ");
  } else if (sensorValue < 1000) {
      Serial.print(" ");
  }
   
  Serial.print(sensorValue);

  Serial.print(" ");
  
      // Tulostetaan vaakapalkki sensorivaluen mukaan
      // 32 x 32 = 1024
      // 64 x 16 = 1024
      // 128 x 8 = 1024
    for (int i = 0; i < 64; i++) {  
    if (sensorValue/16 > i) {
       Serial.print("|");
    } else {
       Serial.print(".");
    } 
  }  
  
  Serial.println();

  delay(10);
}

--

-- ohjelma 3 ----

int ledipinni = 11;
int potikkapinni = A0;

void setup() {
  
  pinMode(ledipinni, OUTPUT);     
  pinMode(potikkapinni, INPUT);     

}

void loop() {
  
  int potikka_arvo = analogRead(potikkapinni);    
  int pwm_arvo = potikka_arvo/4;                    // 0..1023 / 4 = 0..255
  analogWrite(ledipinni, pwm_arvo);
             
}

------



-- ohjelma 2 -----

int ledipinni = 11;

void setup() {
  
  pinMode(ledipinni, OUTPUT);     

}

void loop() {

  for (int i = 0; i <= 255; i++) {
    analogWrite(ledipinni, i);
    delay(100);
  }

  for (int i = 255; i >= 0; i--) {
    analogWrite(ledipinni, i);
    delay(100);
  }
             
}

-------

-- ohjelma 1 ------
int ledipinni = 12;

void setup() {

  pinMode(ledipinni, OUTPUT);     
  digitalWrite(ledipinni, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(3000);
}

void loop() {

  digitalWrite(ledipinni, LOW); 
  delay(1000);              
  digitalWrite(ledipinni, HIGH);
  delay(2000);              

}
-----
analogijännite:
http://arduino.cc/en/Reference/analogWrite#.UwiLl44Y5UQ


Ulos- / sisääntulo
HIGH=5V
LOW=0V

LED
etuvastus 150ohm tai 330ohm
litteä puoli (lyhyempi jalka) maahan

Kauppoja
Lounas 12:15 - 13:00

-----

Arduino IDE ohjelma:
http://arduino.cc/en/Main/Software#toc1

Mac Ajurit FTDI (Duemilanove ja Nano, UNOt toimivat suoraan)
http://www.ftdichip.com/Drivers/VCP.htm
luki että OSX 10.7 asti, mutta toimii myös 10.8

linuxilla:
pitää olla käyttäjäryhmässä (nimi vaihtelee distroittain) dialout ja kirjautua ulos ja sisään
    sudo adduser <käyttäjä> dialout

kytkennät:
http://fritzing.org/download/

Simulator
http://123d.circuits.io
http://www.falstad.com/circuit/