Senin, 27 Februari 2017

Kalkulator Sederhana dengan Arduino

Kembali lagi pada proyek arduino, kali ini proyek yang akan saya ajarkan adalah bagaimana membuat kalkulator sederhana menggunakan arduino. Material yang dibutuhkan tidak terlalu banyak, akan tetapi menguras kantong. Sehingga ada baiknya jika kamu menyiapkan dana lebih untuk proyek ini.

Berikut ini adalah daftar komponen yang harus kamu miliki.

  1. Arduino
  2. Kabel jumper
  3. Potensiometer
  4. Liquid Crystal LCD
  5. Keypad 4x4
  6. Breadboard
Keypad digunakan untuk melakukan input nilai ke arduino, operasi yang memungkinkan untuk dilakukan adalah +, -, : , x. Nilai dan operator akan ditampilkan pada layar LCD. Layar tidak akan melakukan clear screen tanpa menekan tombol terlebih dahulu. Berikut ini adalah rangkaian yang dapat digunakan.
Rangkaian kalkulator sederhana 




Diperlukan perhatian terhadap detail lebih, karena banyak pin yang harus dimasukkan ke arduino. Jika kamu tidak dapat memasang dengan benar, ada baiknya mencari di internet mengenai lokasi pin dari LCD dan keypad. Berikut ini adalah kode yang digunakan untuk kalkulator.

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int inPin = 0;

const int numRows = 4;
const int numCols = 4;
const int debounceTime = 15;

const char keymap[numRows][numCols] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

const int rowPins[numRows] = { 0, 1, 6, 7 }; // Rows 0 through 3
const int colPins[numCols] = { 8, 9, 10, 13 };

void setup() {
  lcd.begin(16,2);
for (int row = 0; row < numRows; row++)
{
pinMode(rowPins[row],INPUT); // Set row pins as input
digitalWrite(rowPins[row],HIGH); // turn on Pull-ups
}
for (int column = 0; column < numCols; column++)
{
pinMode(colPins[column],OUTPUT); // Set column pins as outputs
// for writing
digitalWrite(colPins[column],HIGH); // Make all columns inactive
}
lcd.setCursor(1,0);
lcd.print("A+ B- Cx D:");
}

void loop() {
  char key1=0;
 
  key1 = getKey();
  if( key1 != 0) { // if the character is not 0 then
  //it’s a valid key press
  if (key1 == '*'){
    lcd.clear();
    lcd.setCursor(1,0);
    lcd.print("A+ B- Cx D:");
  }  else{
char key2 = 0;
char key3 = 0;
lcd.setCursor(0,1);
int a = key1 - '0';
lcd.print(a);
while (key3 == 0){
key3 = getKey();
if (key3 != 0 ){
char op = convert(key3);
lcd.print(op); } }
while (key2 == 0){
key2 = getKey();
if (key2 != 0 ){
int b = key2 - '0';
lcd.print(b);
double c = calculate(key3,a,b);
lcd.print('=');
delay(1000);
lcd.print(c); } } } }

}

int calculate (char key3, int a, int b)
{
if (key3=='A'){
return(a+b);
} else
if (key3=='B'){
return(a-b);
} else
if (key3=='C'){
return(a*b);
}
if (key3=='D'){
return(a/b); } }

char convert (char key3)
{
if (key3=='A'){
return('+');
} else
if (key3=='B'){
return('-');
} else
if (key3=='C'){
return('x');
}
if (key3=='D'){
return(':'); } }

char getKey()
{
char key = 0; // 0 indicates no key pressed
for(int column = 0; column < numCols; column++)
{
digitalWrite(colPins[column],LOW); // Activate the current column.
for(int row = 0; row < numRows; row++) // Scan all rows for
// a key press.
{
if(digitalRead(rowPins[row]) == LOW) // Is a key pressed?
{
delay(debounceTime); // debounce
while(digitalRead(rowPins[row]) == LOW); // wait for key to be released
key = keymap[row][column]; // Remember which key
// was pressed

} }
digitalWrite(colPins[column],HIGH); // De-activate the current column.
}
return key; // returns the key pressed or 0 if none
}
 
Sesuaikan input yang anda pasang di arduino dengan kode, karena jika salah maka akan sulit dan memakan waktu untuk memperbaikinya. Berikut ini adalah hasil proyek yang sudah saya selesaikan.

Sebelum input nilai

Setelah input nilai
Team :
Fachri Satrya P
Theo Tanadi
Aditya Ghifari

Selasa, 21 Februari 2017

Arduino dengan Sensor Suhu LM35

Kembali lagi bertemu dengan saya dengan tutorial arduino yang lain. Kali ini kita akan membuat proyek yang tidak terlalu susah, dan tidak membutuhkan banyak material. Kita akan membuat pembaca suhu sederhana menggunakan arduino.

Langsung saja, untuk material yang dibutuhkan dalam membuat proyek ini adalah sebagai berikut.
  1. Arduino
  2. Kabel jumper
  3. Sensor suhu LM35
  4. Breadboard
Pada tutorial ini digunakan display dari program Arduino IDE untuk menunjukkan besarnya suhu. Jika kamu ingin mencoba display lain sangat boleh sekali, akan tetapi saya tidak akan memberikan tutorialnya untuk sementara ini. Teman-teman perlu merangkai terlebih dahulu seperti berikut ini.

Rangkaian
Hati-hati dalam memasang kaki sensor, karena jika salah memasang maka sensor akan panas dan itu bukan pertanda yang baik. Setelah teman-teman sudah memasang komponen, tentu tidak akan memakan waktu yang banyak, maka seperti biasa teman-teman perlu untuk membuat kode. Berikut ini adalah kode yang dapat digunakan.

int sensorPin = A0;    // select the input pin for the potentiometer
int sensorValue = 0;  // variable to store the value coming from the sensor

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

void loop() {

  sensorValue = analogRead(sensorPin);

  Serial.print((500*sensorValue)/1023);
  Serial.println(" C");
 
  delay(500);

}

Setelah memasukkan kode maka teman-teman dapat mengecek apakah keluaran suhu sudah mendekati realita atau belum, jika belum mungkin teman-teman salah memasang kaki sensor. Berikut ini adalah hasil yang saya dapatkan pada pembuatan proyek ini.

Rangkaian jadi

Keluaran pada Arduino IDE
Team :
Fachri Satrya P
Theo Tanadi
Aditya Ghifari

Senin, 13 Februari 2017

7 Segment dengan Push Button



Halo teman-teman! berjumpa lagi dengan saya di blog ini. Kali ini saya akan memberikan tutorial mengenai bagaimana cara membuat sebuah 7 segment untuk bertambah nilainya dengan menekan tombol yang sudah dipasang. Sebelumnya apa itu 7 segment? 7 segment merupakan salah satu display pada arduino yang mirip seperti display countdown lampu merah di jalan. Pada tutorial ini 7 segment hanya bisa bertambah dan tidak bisa dikurangi.

Sebelum membuatnya, teman- teman seperti biasa perlu mencari komponen yang dibutuhkan. Berikut ini adalah list material yang dibutuhkan untuk membuat 7 segment dengan push button.

  1. Arduino Board
  2. BreadBoard
  3. 4 Resistor 470 ohm
  4. 1 7 Segment
  5. 1 Push Button
  6. Kabel male to male
Setelah teman-teman memiliki komponen yang dibutuhkan, maka hal selanjutnya adalah merangkai komponen tersebut. Pada kali ini saya tidak memberikan skema untuk melatih teman-teman supaya lebih mengerti mengenai arduino. Berikut ini adalah langkah yang perlu dilakukan teman-teman.

1. Pasang slot arduino 5v ke kutub positif dari breadboard dan pasang GND ke kutub negatif dari breadboard
List Pin 7 Segment

2. Pasang kaki 7 segment dengan pin sebagai berikut
  1. 7-Segment pin 1 ke Arduino pin 6
  2. 7-Segment pin 2 ke Arduino pin 5
  3. 7-Segment pin 3 ke kutub positif Breadboard  melalui resistor terlebih dahulu
  4. 7-Segment pin 4 ke Arduino pin 4
  5. 7-Segment pin 5 ke Arduino pin 7
  6. 7-Segment pin 6 ke Arduino pin 2
  7. 7-Segment pin 7 ke Arduino pin 3
  8. 7-Segment pin 8 kutub positif Breadboard  melalui resistor terlebih dahulu
  9. 7-Segment pin 9 ke Arduino pin 8
  10. 7-Segment pin 10 ke Arduino pin 9
3. Pasang button dengan salah satu kutub menyambung ke kutub positif dan kutub satunya menyambung ke GND breadboard, melalui resistor, dan menyambung ke pin 12 juga






Setelah komponen dipasang maka hal yang perlu dilakukan berikutnya adalah membuat kode dan memasukkannya ke arduino. Berikut ini adalah kode yang digunakan untuk proyek kali ini.


//Initialize the 7 segment pins
int A = 3;
int B = 2;
int C = 4;
int D = 5;
int DP = 7;
int E = 6;
int F = 8;
int G = 9;

//Initialize the push buttons pins, push buttons states, and the counter
int switchUpPin = 12;
int counter = 0;
int buttonUpState = 0;
int lastButtonUpState = 0;

void setup()
{
  Serial.begin(9600);
 
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(E, OUTPUT);
  pinMode(F, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(DP, OUTPUT);

  //Start with the deceimal point off
  digitalWrite(DP ,HIGH);
}

void loop()
{
  //Getting the reads from the buttons
  buttonUpState = digitalRead(switchUpPin);

  //Detecting button press and getting the button status
  //Do this for the button up
  if (buttonUpState != lastButtonUpState)
  {
    if (buttonUpState == HIGH)
    {
      //Reset the counter to -1
      if(counter == 9)
      {
        counter = -1;
      }
      //Increase the counter by 1
      counter++;
      //Print the counter to the console and calling the function
      Serial.println(counter);
      changeNumber(counter);
      //Delaying by 250 ms
      delay(250);
    }
    else
    {
        Serial.println("OFF");
    }
    //Delay to avoid button bouncing
   delay(50);
  }

  //Calling the function changeNumber with the arg counter
  changeNumber(counter);
}

//The function to display the numbers
void changeNumber(int buttonPress)
{
  switch (buttonPress)
  {
    //number 0
    case 0:
      digitalWrite(A, LOW);
      digitalWrite(B, LOW);
      digitalWrite(C, LOW);
      digitalWrite(D, LOW);
      digitalWrite(E, LOW);
      digitalWrite(F, LOW);
      digitalWrite(G, HIGH);
      break;
    //number 1
    case 1:
      digitalWrite(A, HIGH);
      digitalWrite(B, LOW);
      digitalWrite(C, LOW);
      digitalWrite(D, HIGH);
      digitalWrite(E, HIGH);
      digitalWrite(F, HIGH);
      digitalWrite(G, HIGH);
      break;
    //number 2
    case 2:
      digitalWrite(A, LOW);
      digitalWrite(B, LOW);
      digitalWrite(C, HIGH);
      digitalWrite(D, LOW);
      digitalWrite(E, LOW);
      digitalWrite(F, HIGH);
      digitalWrite(G, LOW);
      break;
    //number 3
    case 3:
      digitalWrite(A, LOW);
      digitalWrite(B, LOW);
      digitalWrite(C, LOW);
      digitalWrite(D, LOW);
      digitalWrite(E, HIGH);
      digitalWrite(F, HIGH);
      digitalWrite(G, LOW);
      break;
    //number 4
    case 4:
      digitalWrite(A, HIGH);
      digitalWrite(B, LOW);
      digitalWrite(C, LOW);
      digitalWrite(D, HIGH);
      digitalWrite(E, HIGH);
      digitalWrite(F, LOW);
      digitalWrite(G, LOW);
      break;
    //number 5
    case 5:
      digitalWrite(A, LOW);
      digitalWrite(B, HIGH);
      digitalWrite(C, LOW);
      digitalWrite(D, LOW);
      digitalWrite(E, HIGH);
      digitalWrite(F, LOW);
      digitalWrite(G, LOW);
      break;
    //number 6
    case 6:
      digitalWrite(A, LOW);
      digitalWrite(B, HIGH);
      digitalWrite(C, LOW);
      digitalWrite(D, LOW);
      digitalWrite(E, LOW);
      digitalWrite(F, LOW);
      digitalWrite(G, LOW);
      break;
    //number 7
    case 7:
      digitalWrite(A, LOW);
      digitalWrite(B, LOW);
      digitalWrite(C, LOW);
      digitalWrite(D, HIGH);
      digitalWrite(E, HIGH);
      digitalWrite(F, HIGH);
      digitalWrite(G, HIGH);
      break;
    //number 8
    case 8:
      digitalWrite(A, LOW);
      digitalWrite(B, LOW);
      digitalWrite(C, LOW);
      digitalWrite(D, LOW);
      digitalWrite(E, LOW);
      digitalWrite(F, LOW);
      digitalWrite(G, LOW);
      break;
    //number 9
    case 9:
      digitalWrite(A, LOW);
      digitalWrite(B, LOW);
      digitalWrite(C, LOW);
      digitalWrite(D, HIGH);
      digitalWrite(E, HIGH);
      digitalWrite(F, LOW);
      digitalWrite(G, LOW);
      break;
  }
}

Setelah kode dibuat maka hal terakhir adalah mengupload ke arduino. Pada proyek ini teman-teman harus lebih teliti karena kabel berjumlah banyak dan salah memasang akan membuat teman-teman makin bingung. Berikut ini adalah hasil proyek yang kami buat.


0-9 berhasil

Tidak susah bukan untuk membuat 7 segment dengan push button?
 
Team : Theo Tanadi
       Aditya Ghifari
       Fachri Satrya P
Credits : http://www.instructables.com/id/Arduino-7-Segment-Click-Counter/?ALLSTEPS

Selasa, 07 Februari 2017

Lampu Switch Sederhana Menggunakan Arduino

Pada hari ini saya akan memberikan sedikit tutorial mengenai cara membuat lampu switch sederhana menggunakan arduino. Sebelumnya apa itu arduino? Arduino adalah sebuah board micro-controller, digunakan untuk membuat sebuah aplikasi yang dapat berinteraksi dengan sekitarnya. Bentuk interaksi bisa bermacam-macam, tergantung kebutuhan pengguna akan arduino tersebut.

Lalu bagaimana cara membuat lampu switch arduino tersebut? pertama teman-teman harus mencari komponen yang dibutuhkan terlebih dahulu. Berikut ini adalah daftar komponen yang harus dimiliki oleh teman-teman.




  1. Arduino Uno
  2. Lampu Led
  3. Kabel Jumper
  4. Push Switch
  5. Resistor 560 ohm
  6. Bread Board
Selain komponen, teman-teman juga harus menginstall program arduino IDE. Program ini berguna untuk membuat perintah untuk arduino, tanpa perintah arduino tidak akan mengerti apa yang harus dilakukan. Arduino IDE dapat diunduh melalui https://www.arduino.cc/en/Main/Software. Teman-teman silahkan pilih arduino IDE yang sesuai dengan kebutuhan teman-teman. Setelah mengunduh arduino IDE buat program untuk dimasukkan ke arduino. Untuk tutorial ini saya akan berikan kode nya sehingga teman-teman tidak perlu kesusahan mencari lagi. Berikut ini adalah kodenya.

int inPin = 2;         // nomer pin untuk input
int outPin = 13;       // nomer pin untuk output
int state = HIGH;      // state saat ini dari output
int reading;           // hasil bacaan saat ini dari input
int previous = LOW;    // hasil bacaan sebelumnya dari output
long time = 0;
long debounce = 200;
void setup()
{
  pinMode(inPin, INPUT);
  pinMode(outPin, OUTPUT);
}
void loop()
{
  reading = digitalRead(inPin);
  if (reading == HIGH && previous == LOW && millis() - time > debounce) {
    if (state == HIGH)
      state = LOW;
    else
      state = HIGH;
    time = millis();
  }
  digitalWrite(outPin, state);
  previous = reading;
}
Setelah membuat kode maka teman-teman perlu merangkai komponen yang sudah dimiliki. Berikut ini adalah skematik yang teman-teman harus ikuti supaya proyek ini dapat berhasil.

Skematik Arduino

Push button diberi tegangan 5v dan diberi resistor, dan dihubungkan juga ke ground. Resistor dipasang paralel. Dari push button itu juga dihubungkan ke pin yang sudah ada pada arduino, dalam hal ini pin yang digunakan yaitu pin 2 untuk input.

Untuk rangkaian yang LED, ground dihubungkan ke LED melalui resistor, dan LED dihubungkan ke pin 13, disini pin 13 berperan sebagai output dari arduino.

Setelah memastikan komponen terpasang, teman-teman bisa memasukkan program dengan mengklik tombol upload. Silahkan cek apakah sudah menyala atau belum, posisi LED juga berpengaruh apabila LED tidak menyala coba putar posisi kaki LED. Pada saat saya mencoba posisi kaki LED hampir membuat percobaan ini tidak berhasil.


Sebelum ditekan lampu masih mati
Setelah ditekan lampu menyala

Tidak susah bukan untuk mmebuat lampu switch sederhana menggunakan arduino? semua orang pasti bisa membuatnya karena arduino memang dibuat untuk pemula yang ingin belajar elektronika lebih lanjut.
Team : Theo Tanadi
       Aditya Ghifari
       Fachri Satrya P
Credits : 
https://milarduino.wordpress.com/2014/02/01/arduino-button-switch/
https://izajusi.wordpress.com/2014/02/03/arduino-lampu-led-switch-sederhana/