Arduinoda Fonksiyon ve Interruplar Arduino Fonksiyonlar Donparametresi fonksiyonad

  • Slides: 12
Download presentation
Arduinoda Fonksiyon ve Interruplar

Arduinoda Fonksiyon ve Interruplar

Arduino Fonksiyonlar Donüşparametresi fonksiyonadı ( giriş parametreleri ){ //fonksiyon içi return dönüşdeğeri; }

Arduino Fonksiyonlar Donüşparametresi fonksiyonadı ( giriş parametreleri ){ //fonksiyon içi return dönüşdeğeri; }

 • void printmessage () • { • Serial. println("I'm a function!"); • }

• void printmessage () • { • Serial. println("I'm a function!"); • } • loop () • { • printmessage (); • • }

// basit fonksiyon ornegi loop () { int z; z = addition (5, 3);

// basit fonksiyon ornegi loop () { int z; z = addition (5, 3); Serial. print(z); } int addition (int a, int b) { int r; r=a+b; return (r); }

 • // referans adresiyle parameter donduren fonksiyon ornegi • • • void duplicate

• // referans adresiyle parameter donduren fonksiyon ornegi • • • void duplicate (int& a, int& b, int& c) { a*=2; b*=2; c*=2; } • • loop () { int x=1, y=3, z=7; duplicate (x, y, z); Serial. print(x); Serial. print(y); Serial. print(z); • }

 • // karisik parametreli fonksiyon ornegi • • • void prevnext (int x,

• // karisik parametreli fonksiyon ornegi • • • void prevnext (int x, int& prev, int& next) { prev = x-1; next = x+1; } • • • loop () { int x=100, y, z; prevnext (x, y, z); Serial. print(x); Serial. print(y); Serial. print(z); }

 • // fonksiyon prototipi tanimlama • • void odd (int a); void even

• // fonksiyon prototipi tanimlama • • void odd (int a); void even (int a); • • • loop () { int i; do { Serial. println("Type a number (0 to exit): "); i = Serial. parse. Int(); odd (i); } while (i!=0); • • • } • • • void odd (int a) { if ((a%2)!=0) Serial. println ("Number is odd. n"); else even (a); } void even (int a) { if ((a%2)==0) Serial. println ("Number is even. n"); else odd (a); }

 • void blink_led(); • • • void setup() { pin. Mode(led, OUTPUT); }

• void blink_led(); • • • void setup() { pin. Mode(led, OUTPUT); } • • • void loop() { blink_led(); } • • void blink_led() { digital. Write(led, HIGH); delay(200); digital. Write(led, LOW); delay(200); }

 • // fonksiyonlarda parameter olarak array(dizi) kullanimi • • • void printarray (int

• // fonksiyonlarda parameter olarak array(dizi) kullanimi • • • void printarray (int arg[], int length) { for (int n=0; n<length; n++) Serial. println (arg[n] ); Serial. println ("n"); } • • loop () { int firstarray[] = {5, 10, 15}; int secondarray[] = {2, 4, 6, 8, 10}; printarray (firstarray, 3); printarray (secondarray, 5); }

Arduino Interupt Pinleri

Arduino Interupt Pinleri

Arduino Interruptlar volatile byte half_revolutions; unsigned int rpm; unsigned long timeold; void setup() {

Arduino Interruptlar volatile byte half_revolutions; unsigned int rpm; unsigned long timeold; void setup() { Serial. begin(115200); attach. Interrupt(0, magnet_detect, RISING); //Initialize the intterrupt pin (Arduino digital pin 2) half_revolutions = 0; rpm = 0; timeold = 0; } void loop()//Measure RPM { if (half_revolutions >= 20) { rpm = 30*1000/(millis() timeold)*half_revolutions; timeold = millis(); half_revolutions = 0; //Serial. println(rpm, DEC); } } void magnet_detect()//This function is called whenever a magnet/interrupt is detected by the arduino { half_revolutions++; Serial. println("detect"); }

// toggles LED when interrupt pin changes state int pin = 13; volatile int

// toggles LED when interrupt pin changes state int pin = 13; volatile int state = LOW; void setup() { pin. Mode(pin, OUTPUT); attach. Interrupt(0, blink, CHANGE); } void loop() { digital. Write(pin, state); } void blink() { state = !state; }