Ohjelmointisivusto löytyy täältä: https://sites.google.com/site/peliohjelmointinuk/home
Tinkercad.com (valitse Logon kautta CIRCUIT)
Arduino.cc (IDE = ohjelmointiympäristö)
Asennus ja 1. ohjelma "Morse-koodi"
Tehtävä 1a: LIsää kortille (punainen) Led-valo nastoihin Digital 13 - GND (Kytke lyhyt jalka maahan GND)
Ohjelma: oikealla
/* . Tehtävä 1: Led suoraan kortissa
lisätehtävä
a) nimeä portti alussa
const int ledPin = 13;
b) Siirrä led kytkinlevylle
c) Tee laite morsettamaan oma nimesi . */
void setup() {
pinMode(13,OUTPUT);
digitalWrite(13,LOW);
}
void loop() {
digitalWrite(13,HIGH); // avaa sähkövirran
delay(500); //odottaa 500 ms eli 0,5 s
digitalWrite(13,LOW); // sulkee sähkövirran
delay(1000);
}
1b. Morsekirjain. Morseta K-kirjain ledillä. K-kirjain on "pitkä, lyhyt, pitkä" eli "- . - ". Lisää loppuun 2 sekunnin tauko.
1c. Muuttujat. Lisätään koodiin muuttujat, jotka sisältävät ledin palamisajat.
Aivan koodin alkuun lisää "int p=500;" ja "int l=100".
Korvaa delay() -komentojen lukuarvot kirjaimilla p ja l. (aja ohjelma)
Kokeile muuttaa koodissa arvot p=300 ja l=50 (Aja ohjelma)
1d. Kytkentälevy. Lisää pin numeroihin 13, 7 ja 8 punainen, keltainen ja vihreä led. Luo Valoshow niiden avulla.
Liitä johtimella GND-pin kytkentälevyn "-" -kohtaan.
Liitä pin13 yhteen vaakariviin johtimella. Liitä punainen led vaakarivin rei´ästä "-"-sarakkeeseen (vastaa 1a kytkentää.)
Toista pin7, pin8 ja muille ledeille edellinen kohta.
Muokkaa koodia
Lisää setup{}-lohkoon pinmode-läskyt pin7 ja pin8:lle. (vrt pin13)
Sytytä ja sammuta digitalWrite()-komennolla ledejä.
"Led_vilkkumaan"
GND - 1k ohm- led - digital 8
pinMode(8,OUTPUT); (kertoo portin toiminnan setup:ssa)
digitalWrite(8,HIGH); Avaa virran portissa
digitalWrite(8,LOW); Sulkee virran portissa
Ohjelmakoodi löytyy esimerkkikoodeista Arduino-ympäristöstä.
"Led päälle painonapilla"
digitalRead()
Ehtolauseke if...else
Sarjaportin lukemat Serial.begin(9600) ja Serial.print(...)
const int LED = 13;
const in t BUTTON = 7;
int val = 0;
void setup(){
pinMode(LED,OUTPUT);
pinMode(BUTTON,INPUT);
// Serial.begin(9600);
} // setup loppuu
void loop(){
val = digitalRead(BUTTON);
//Serial.print("Muuttujan val -arvo on : ");
// Serial.println(val);
if (val == HIGH) {digitalWrite(LED,HIGH);} // kaksi yhtäsuuruusmerkkiä.
else { digitalWrite(LED, LOW); }
} //loop loppuu
i == 10 (i on tasan 10)
i != 10 (i ei ole 10)
i < 10 ( i on alle 10)
i <= 10 ( i on pienempi tai yhtäsuuri kuin 10)
for (alustus; ehto, päivitys)
for ( i = 0; i < 10; i = i+1)
if(ehto)
if(luku < 10)
// For-silmukka 1
int i = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
for(i=0;i<10;i=i+1)
{
Serial.println(i);
}
delay(1000);
} //loop loppuu
// For-silmukka 2:Yhtälön ratkaisu
// Ratkaistaan yhtälö 2x+10=112
int i = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
for(i=0;i<1000;i=i+1)
{
if( 2*i+10 == 112 )
{Serial.println(i);}
}
delay(1000);
} //loop loppuu
// For-silmukka 3:Yhtälön ratkaisu
// Ratkaistaan yhtälöpari
// 2x+10y = 70
// x-2y = 14
int x = 0;
int y = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
for(x=0 ; x<1000 ; x=x+1)
{
for (y=0; y<1000 ; y = y+1)
{
if(2*x+10==70 && x-2*y==14 )
{Serial.print(x);
Serial.print(",");
Serial.println(y);
}
}
}
delay(1000);
} //loop loppuu
Esimerkkikoodinpätkiä
Serial.begin(9600);
Serial.println("Tulostettava teksti");
Serial.println("Tulostettava teksti ja rivinvaihto");
Serial.print(x); // muuttujan x arvon tulostus
const int x = 100; // vakion määrittely (ennen setup-lohkoa)
int y; // muuttujan määrittely
void setup() { }
void loop() { }
//Toisto
for(alustus ; ehto ; päivitys)
{...}
//valinta
if (locked == false) { }
Ledin himmennys
Digitalinen PWM-lähtö (0-254)
Pulse - Width - modulation. Linkki
For -toistorakenne
const int LED = 9;
int i = 0;
void setup() {
pinMode(LED,OUTPUT);
}
void loop() {
for(i=0 ; i<100 ; i=i+10)
{analogWrite(LED,i);
delay (90);
}
}
Analoginen tulo (lämpöanturi)
Serial port
else-if -rakenne
Harjoitellaan ohjelmoinnin perusrakenteita python-kielellä tie koodariksi -nettikurssin avulla. Kurssi löytyy osoitteesta:
Harjoittelu tapahtuu sivulla olevan online-editorin kautta.
#define trigPin 2 //triggeri nasta
#define echoPin 4 //Echo/kaiku nasta
void setup() {
Serial.begin (9600);
pinMode (trigPin, OUTPUT);
pinMode (echoPin, INPUT);
}
void loop() {
int duration, distance;
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); // Mitataan kaiuin aika josta lasketaan etäisyys
distance = (duration/2) / 29.1; // äänen nopeus on n. 29 cm/ms
if (distance >= 400 or distance <= 0) //mittausväli senttimetreinä (riippuu anturista)
{Serial.println("Out of range");
}
else {
Serial.print(distance); //Tulostetaan saatu etäisyys
Serial.println(" cm");
}
delay(500)
}
Koodi RF-lukijalle
//lähde https://lastminuteengineers.com/how-rfid-works-rc522-arduino-tutorial///muista ladata sivulla oleva kirjasto!//yhdistä sensori arduinoosi sivustolla olevan kuvan mukaan//vain LED valot ovat listättyjä sivuston kytkentään, muista vastukset!