ตัวอย่างที่ 1. การแสดงผลข้อความผ่านจอ lcd โดยใช้โปรแกรม Arduino IDE
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#define I2C_ADDR 0x27
#define blp 3
LiquidCrystal_I2C lcd(I2C_ADDR, 2, 1, 0, 4, 5, 6, 7);
byte ww[8] = {B00000,B00000,B11010,B01010,B01010,B01010,B01110,B00000}; //ข
byte aa[8] = {B00000,B00000,B11010,B01010,B01010,B01011,B01101,B00000}; //น
byte dd[8] = {B00000,B00000,B11001,B01001,B01001,B11101,B11011,B00000}; //ม
byte uu[8] = {B00000,B00000,B10001,B10001,B10101,B11011,B10001,B00000}; //พ
byte hh[8] = {B00000,B00000,B01110,B00010,B00010,B00010,B00010,B00000}; //า
byte ee[8] = {B00000,B00000,B01101,B10001,B01001,B10001,B11111,B00000}; //ย
void setup() {
lcd.begin (16, 2);
lcd.setBacklightPin(blp, POSITIVE);
lcd.setBacklight(HIGH);
lcd.createChar(1, ww); //เก็บค่าอักศร ข
lcd.createChar(2, aa); //เก็บค่าอักศร น
lcd.createChar(3, dd); //เก็บค่าอักศร ม
lcd.createChar(4, uu); //เก็บค่าอักศร พ
lcd.createChar(5, hh); //เก็บค่าอักศร า
lcd.createChar(6, ee); //เก็บค่าอักศร ย
}
void loop() {
scrollTextDisplay();
}
void scrollTextDisplay(){
for (int couter = 0; couter < 14; couter++){
lcd.scrollDisplayLeft();
lcd.setCursor(4, 1);
lcd.write((uint8_t)1);//ข
lcd.write((uint8_t)2);//น
lcd.write((uint8_t)3);//ม
lcd.write((uint8_t)4);//พ
lcd.write((uint8_t)5);//า
lcd.write((uint8_t)6);//ย
lcd.setCursor(2, 0);
lcd.print("Microcontroller");
delay(500);
}
}
ตัวอย่างที่ 2. วงจรหรี่/เร่งไฟโดยใช้potentiometer คู่กับบอร์ด Arduino
int sensorPin = A5; // select the input pin for the potentiometer
int ledPin = 13; // select the pin for the LED
int sensorValue = 0; // variable to store the value coming from the sensor
void setup()
{ pinMode(ledPin, OUTPUT);
Serial.begin(9600); }
void loop() {
sensorValue = analogRead(sensorPin);
digitalWrite(ledPin, HIGH); delay(sensorValue);
digitalWrite(ledPin, LOW); delay(sensorValue);
Serial.println(sensorValue, DEC); }
ตัวอย่างที่ 3. สร้างเสียงเพลงโดยใช้ buzzer
#include "pitches.h"#define melodyPin 9
// Jingle Bells
int melody[] = {
NOTE_E5, NOTE_E5, NOTE_E5,
NOTE_E5, NOTE_E5, NOTE_E5,
NOTE_E5, NOTE_G5, NOTE_C5, NOTE_D5,
NOTE_E5,
NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5,
NOTE_F5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5,
NOTE_E5, NOTE_D5, NOTE_D5, NOTE_E5,
NOTE_D5, NOTE_G5
};
int tempo[] = {
8, 8, 4,
8, 8, 4,
8, 8, 8, 8,
2,
8, 8, 8, 8,
8, 8, 8, 16, 16,
8, 8, 8, 8,
4, 4
};
// We wish you a merry Christmas
int wish_melody[] = {
NOTE_B3,
NOTE_F4, NOTE_F4, NOTE_G4, NOTE_F4, NOTE_E4,
NOTE_D4, NOTE_D4, NOTE_D4,
NOTE_G4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_F4,
NOTE_E4, NOTE_E4, NOTE_E4,
NOTE_A4, NOTE_A4, NOTE_B4, NOTE_A4, NOTE_G4,
NOTE_F4, NOTE_D4, NOTE_B3, NOTE_B3,
NOTE_D4, NOTE_G4, NOTE_E4,
NOTE_F4
};
int wish_tempo[] = {
4,
4, 8, 8, 8, 8,
4, 4, 4,
4, 8, 8, 8, 8,
4, 4, 4,
4, 8, 8, 8, 8,
4, 4, 8, 8,
4, 4, 4,
2
};
// Santa Claus is coming to town
int santa_melody[] = {
NOTE_G4,
NOTE_E4, NOTE_F4, NOTE_G4, NOTE_G4, NOTE_G4,
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, NOTE_C5,
NOTE_E4, NOTE_F4, NOTE_G4, NOTE_G4, NOTE_G4,
NOTE_A4, NOTE_G4, NOTE_F4, NOTE_F4,
NOTE_E4, NOTE_G4, NOTE_C4, NOTE_E4,
NOTE_D4, NOTE_F4, NOTE_B3,
NOTE_C4
};
int santa_tempo[] = {
8,
8, 8, 4, 4, 4,
8, 8, 4, 4, 4,
8, 8, 4, 4, 4,
8, 8, 4, 2,
4, 4, 4, 4,
4, 2, 4,
1
};
int switchOne = 0;
int switchTwo = 0;
int switchThree = 0;
void setup(void) {
pinMode(9, OUTPUT); // Buzzer
pinMode(13, OUTPUT); // Led indicator when singing a note
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
}
void loop() {
switchOne = digitalRead(2);
switchTwo = digitalRead(3);
switchThree = digitalRead(4);
if (switchOne == HIGH) {
sing(1);
} else if (switchTwo == HIGH) {
sing(2);
} else if (switchThree == HIGH) {
sing(3);
}
}
int song = 0;
void sing(int s) {
// iterate over the notes of the melody:
song = s;
if (song == 3) {
Serial.println(" 'We wish you a Merry Christmas'");
int size = sizeof(wish_melody) / sizeof(int);
for (int thisNote = 0; thisNote < size; thisNote++) {
// to calculate the note duration, take one second
// divided by the note type.
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 1000 / wish_tempo[thisNote];
buzz(melodyPin, wish_melody[thisNote], noteDuration);
// to distinguish the notes, set a minimum time between them.
// the note's duration + 30% seems to work well:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// stop the tone playing:
buzz(melodyPin, 0, noteDuration);
}
} else if (song == 2) {
Serial.println(" 'Santa Claus is coming to town'");
int size = sizeof(santa_melody) / sizeof(int);
for (int thisNote = 0; thisNote < size; thisNote++) {
// to calculate the note duration, take one second
// divided by the note type.
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 900 / santa_tempo[thisNote];
buzz(melodyPin, santa_melody[thisNote], noteDuration);
// to distinguish the notes, set a minimum time between them.
// the note's duration + 30% seems to work well:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// stop the tone playing:
buzz(melodyPin, 0, noteDuration);
}
} else {
Serial.println(" 'Jingle Bells'");
int size = sizeof(melody) / sizeof(int);
for (int thisNote = 0; thisNote < size; thisNote++) {
// to calculate the note duration, take one second
// divided by the note type.
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 1000 / tempo[thisNote];
buzz(melodyPin, melody[thisNote], noteDuration);
// to distinguish the notes, set a minimum time between them.
// the note's duration + 30% seems to work well:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// stop the tone playing:
buzz(melodyPin, 0, noteDuration);
}
}
}
void buzz(int targetPin, long frequency, long length) {
digitalWrite(13, HIGH);
long delayValue = 1000000 / frequency / 2; // calculate the delay value between transitions
//// 1 second's worth of microseconds, divided by the frequency, then split in half since
//// there are two phases to each cycle
long numCycles = frequency * length / 1000; // calculate the number of cycles for proper timing
//// multiply frequency, which is really cycles per second, by the number of seconds to
//// get the total number of cycles to produce
for (long i = 0; i < numCycles; i++) { // for the calculated length of time...
digitalWrite(targetPin, HIGH); // write the buzzer pin high to push out the diaphram
delayMicroseconds(delayValue); // wait for the calculated delay value
digitalWrite(targetPin, LOW); // write the buzzer pin low to pull back the diaphram
delayMicroseconds(delayValue); // wait again or the calculated delay value
}
digitalWrite(13, LOW);
}





























































