Monday, July 31, 2017

P10 tampilkan text simpan di eeprom

P10 tampilkan text simpan di eeprom

#include <SPI.h>
#include <DMD.h>
#include <TimerOne.h>
#include <EEPROM.h>
#include <Arial_black_16.h>

#define maxChar 500
#define dmdPanjang 2
#define dmdLebar 1
DMD dmd(dmdPanjang,dmdLebar);

char runningText[maxChar];
char rChar;
byte index;
int i;

void ScanDMD() {
dmd.scanDisplayBySPI();
}

void setup(void) {
Timer1.initialize( 5000 );
Timer1.attachInterrupt( ScanDMD );
dmd.clearScreen( true );
Serial.begin(9600);
}

void loop(void) {
if(Serial.available() > 0 ){
for(i=0; i < 499; i++){
EEPROM.write(i,0);
}
for(i=0; i < 499; i++){
runningText[i] = '';
EEPROM.write(i,runningText[i]);
}
index = 0;
}
while(Serial.available() > 0){
if(index < (maxChar-1)) {
rChar = Serial.read();
runningText[index] = rChar;
EEPROM.write(index,runningText[index]);
index++;
runningText[index] = '';
}
}
for(i=0; i < 499; i++){
runningText[i] = EEPROM.read(i);
}

dmd.clearScreen( true );
dmd.selectFont(Arial_Black_16);
dmd.drawMarquee(runningText, maxChar,(32*dmdPanjang)-1 ,0);
long start=millis();
long timer=start;
boolean ret=false;
while(!ret){
if ((timer+30) < millis()) {
ret=dmd.stepMarquee(-1,0);
timer=millis();
}
}
}

Saturday, June 17, 2017

Solusi gps neo 6mv2 arduino tidak berkedip blink tanda mendapat sinyal

Saya baru saja membeli modul gps neo 6mv2 , dan ketika saya selesai solder kemudian pasang ke hardware arduino dengan pemasangan
vcc modul gps - vcc arduino
gnd modul gps- gnd arduino
tx modul gps-- rx software serial arduino (4)
rx modul gps-- tx software serial arduino (3)
alias sambungan serial cross

gps neo 6mv2 arduino
gps neo 6mv2 arduino

hasilnya adalah lampu led pada modul gps neo 6mv2 tidak menyala (berkedip) sama sekali, saya check tidak ada short circuit dan tidak ada keanehan pada board modul gps neo 6mv2 dalam hal ini panas nya board yang mungkin terjadi karena polaritas tegangan input terbalik atau  karena hal lainnya,

karena bingung agak lama ga muncul muncul sinyal atau tanda tanda kehidupan dari modul gps terserbut akhirnya saya memutuskan untuk mencari referensi tentang tidak berkedip nya led pada modul gps

dan saya dapati pernyataan sebagai berikut :

The Neo 6M takes a bit of time to fix when first powered on. If your board is fitted with a small battery it will most probably be flat and will take an hour or two to charge up. It is there to provide charge to the EEPROM and the onboard RTC.
Also check that the leads on the battery are not shorting.
You do not get a valid data sentence out of the GPS until the RTC can sync time.

yang artinya kurang lebih :

Neo 6M membutuhkan sedikit waktu  saat pertama kali dinyalakan. Jika modul gps anda Anda dilengkapi dengan baterai kecil, kemungkinan besar akan memerlukan waktu satu atau dua jam untuk mengisi baterai. untuk memberikan charge ke EEPROM dan onboard RTC.

Juga periksa apakah lead pada baterai tidak shorting (bahasa indonesia nya sih hubung singkat, bahasa slang nya konsleting )

Anda tidak mendapatkan data yang valid keluar dari GPS sampai RTC bisa menyelaraskan waktu.


kesimpulannya adalah modul membutuhkan sedikit waktu untuk pengisian baterai yang terpasang pada modul  gps neo 6mv2

setelah saya on kan beberapa menit akhirnya modul gps neo 6mv2 seolah bangkit dari kematian dan dapat dipergunakan. 

saya menggunakan library software serial dan tinygps untuk mengakses modul gps tersebut 

rangkaian nya adalah sebagai berikut 


Mengakses modul gps NEO6MV2 (Neo 6M) dengan arduino uno

berikut ini sketch nya 


#include <SoftwareSerial.h>
#include <TinyGPS.h>

TinyGPS gps;
SoftwareSerial ss(4, 3);//rx,tx

void setup() {
  Serial.begin(9600);
  ss.begin(9600);
}

void loop()
{
bool newData = false;
  unsigned long chars;
  unsigned short sentences, failed;
    while (ss.available())
    {
      char c = ss.read();
         if (gps.encode(c))
        newData = true;
    }

  if (newData)
  {
    float flat, flon;
    unsigned long age;
    gps.f_get_position(&flat, &flon, &age);
  
    Serial.print("Latitude ");
    Serial.println(flat, 6);
    Serial.println("");

    Serial.print("Longitude ");
    Serial.println(flon, 6);
    Serial.println("");
    Serial.println("");

  }
  }


berikut ini hasil nya 


gps neo 6mv2 arduino
gps neo 6mv2 arduino



Wednesday, June 7, 2017

Membuat jam Analog dengan arduino + TFT LCD 2.4 inch

iseng saja mengoprek di pagi hari kamis 8 juni 2017, membuat mainan baru berupa jam Analog dengan arduino + TFT LCD 2.4 inch  saya menggunakan yang berupa shield jadi tinggal colok ke arduino secara pas tanpa ada masalah sedikit pun... eh ada sih, kaki nya yang kurang pas , sehingga pin TFT LCD sedikit meleset dari lokasi seharusnya dia tertancap di pin arduino uno yang saya pergunakan


Membuat jam Analog dengan arduino + TFT LCD 2.4 inch
Membuat jam Analog dengan arduino + TFT LCD 2.4 inch

berikut ini coding (sketch) arduini Membuat jam Analog dengan arduino + TFT LCD 2.4 inch



#include <Adafruit_GFX.h> // Hardware-specific library
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;

#define LCD_CS A3
#define LCD_CD A2
#define LCD_WR A1
#define LCD_RD A0
#define LCD_RESET A4

// Agar warna mudah dimengerti (Human Readable color):
#define TFT_BLACK   0x0000
#define TFT_BLUE    0x001F
#define TFT_RED     0xF800
#define TFT_GREEN   0x07E0
#define TFT_CYAN    0x07FF
#define TFT_MAGENTA 0xF81F
#define TFT_YELLOW  0xFFE0
#define TFT_WHITE   0xFFFF
#define TFT_GREY    0x5AEB

//Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

float sx = 0, sy = 1, mx = 1, my = 0, hx = -1, hy = 0;    // Saved H, M, S x & y multipliers
float sdeg = 0, mdeg = 0, hdeg = 0;
uint16_t osx = 120, osy = 120, omx = 120, omy = 120, ohx = 120, ohy = 120; // Saved H, M, S x & y coords
int16_t x0 = 0, x1 = 0, yy0 = 0, yy1 = 0;
uint32_t targetTime = 0;                    // for next 1 second timeout

uint16_t xpos; // x posisi jam
uint8_t conv2d(const char* p) {
uint8_t v = 0;
  if ('0' <= *p && *p <= '9')
   v = *p - '0';
  return 10 * v + *++p - '0';
}

//Mengambil waktu jam dari waktu Compile/Upload di system Windows
uint8_t hh = conv2d(__TIME__), mm = conv2d(__TIME__ + 3), ss = conv2d(__TIME__ + 6); // mengambil data waktu dari jam Compile-Upload
boolean initial = 1;

void setup(void) {
 
  Serial.begin(9600);
    tft.reset();
    uint16_t identifier = tft.readID();
    Serial.print("ID = 0x");
    Serial.println(identifier, HEX);
    if (identifier == 0xEFEF) identifier = 0x9486;
    tft.begin(identifier);
  // Draw clock face

  xpos = tft.width() / 2; // mencari titik koordinat tengah LCD
  tft.fillCircle(xpos, 120, 118, TFT_GREEN); //warna lingkaran luar
  tft.fillCircle(xpos, 120, 110, TFT_BLACK); //warna jam bagian dalam

  // Draw 12 lines
  for (int i = 0; i < 360; i += 30) {
    sx = cos((i - 90) * 0.0174532925);
    sy = sin((i - 90) * 0.0174532925);
    x0 = sx * 114 + xpos;
    yy0 = sy * 114 + 120;
    x1 = sx * 100 + xpos;
    yy1 = sy * 100 + 120;

    tft.drawLine(x0, yy0, x1, yy1, TFT_YELLOW);//garis penanda angka jam
  }

  // Draw 60 dots
  for (int i = 0; i < 360; i += 6) {
    sx = cos((i - 90) * 0.0174532925);
    sy = sin((i - 90) * 0.0174532925);
    x0 = sx * 102 + xpos;
    yy0 = sy * 102 + 120;
    // Draw minute markers
    tft.drawPixel(x0, yy0, TFT_WHITE); //titik penanda menit

    // Draw main quadrant dots
    if (i == 0 || i == 180) tft.fillCircle(x0, yy0, 2, TFT_WHITE); //penanda 12 dan 6
    if (i == 90 || i == 270) tft.fillCircle(x0, yy0, 2, TFT_WHITE); //penanda 3 dan 9
  }

  tft.fillCircle(xpos, 121, 3, TFT_WHITE);
  targetTime = millis() + 1000;
}

void loop() {
  if (targetTime < millis()) {
    targetTime = millis() + 1000;
    ss++;              // Advance second
    if (ss == 60) {
      ss = 0;
      mm++;            // Advance minute
      if (mm > 59) {
        mm = 0;
        hh++;          // Advance hour
        if (hh > 23) {
          hh = 0;
        }
      }
    }

    // Pre-compute hand degrees, x & y coords for a fast screen update
    sdeg = ss * 6;                     // 0-59 -> 0-354
    mdeg = mm * 6 + sdeg * 0.01666667; // 0-59 -> 0-360 - includes seconds, but these increments are not used
    hdeg = hh * 30 + mdeg * 0.0833333; // 0-11 -> 0-360 - includes minutes and seconds, but these increments are not used
    hx = cos((hdeg - 90) * 0.0174532925);
    hy = sin((hdeg - 90) * 0.0174532925);
    mx = cos((mdeg - 90) * 0.0174532925);
    my = sin((mdeg - 90) * 0.0174532925);
    sx = cos((sdeg - 90) * 0.0174532925);
    sy = sin((sdeg - 90) * 0.0174532925);

    if (ss == 0 || initial) {
      initial = 0;
      // Erase hour and minute hand positions every minute
      tft.drawLine(ohx, ohy, xpos, 121, TFT_BLACK);
      ohx = hx * 62 + xpos + 1;
      ohy = hy * 62 + 121;
      tft.drawLine(omx, omy, xpos, 121, TFT_BLACK);
      omx = mx * 84 + xpos;
      omy = my * 84 + 121;
    }

    // Redraw new hand positions, hour and minute hands not erased here to avoid flicker
    tft.drawLine(osx, osy, xpos, 121, TFT_BLACK);
    osx = sx * 90 + xpos + 1;
    osy = sy * 90 + 121;
    tft.drawLine(osx, osy, xpos, 121, TFT_RED);
    tft.drawLine(ohx, ohy, xpos, 121, TFT_WHITE);
    tft.drawLine(omx, omy, xpos, 121, TFT_WHITE);
    tft.drawLine(osx, osy, xpos, 121, TFT_RED);

    tft.fillCircle(xpos, 121, 3, TFT_RED);

    // Draw text at position xpos,260 using fonts 4
  // Only font numbers 2,4,6,7 are valid. Font 6 only contains characters [space] 0 1 2 3 4 5 6 7 8 9 : . a p m
  // Font 7 is a 7 segment font and only contains characters [space] 0 1 2 3 4 5 6 7 8 9 : .
  tft.fillRect(xpos-5, 200,12,10,TFT_BLACK);
  tft.setCursor(xpos-5, 200);
  tft.setTextSize(1);
  tft.print(ss);
  }
}


dan hasil nya sebagai berikut :
video  jam Analog dengan arduino + TFT LCD 2.4 inch  1






Friday, June 2, 2017

Solusi Try 'bossac.exe -h' or 'bossac.exe --help' for more information pada arduino 1.6.8 (solved)

Pada saat menggunakan  arduino Due dengan tujuan mengejar sampling rate pembacaan ADC + pengiriman data serial ke PC, saya mengalami errror sebagai berikut ketika proses upload sketch ke board arduino :


Sketch uses 26,524 bytes (5%) of program storage space. Maximum is 524,288 bytes.
bossac.exe: extra arguments found
Try 'bossac.exe -h' or 'bossac.exe --help' for more information

bossac.exe: extra arguments found
bossac.exe: extra arguments found

setelah baca literatur sana sini, artikel demi artikel ternyata saya malah makin kebingunan untuk menemukan solusi mengatasi pesan eror  Try 'bossac.exe -h' or 'bossac.exe --help' for more information pada arduino 1.6.8

akhirnya saya bertanya kepada seorang teman yang menurut saya lebih memiliki pengalaman dalam hal ini, akhirnya saya mendapat jawaban, bahwa Solusi Try 'bossac.exe -h' or 'bossac.exe --help' for more information pada arduino 1.6.8 adalah dengan meng-upgrade version arduino IDE nya minimal ke 1.6.9

dan akhir nya masalah saya terselesaikan , tinggal menggunakan software tersebut untuk mengerjakan proyek berbasis arduino DUE, semoga sampling rate tercapai . selamat berkarya


Tuesday, May 30, 2017

PROGRAM BEASISWA BAGI PENGHAFAL QUR’AN DAN UNTUK UMUM BAGI YANG BERMINAT DIDIDIK MENJADI WIRAUSAHA DI BIDANG PROPERTYPROGRAM PENDIDIKAN SELAMA SATU TAHUN

BAGI YANG BERMINAT DIDIDIK MENJADI WIRAUSAHA DI BIDANG PROPERTY
DI PESANTREN PROPERTY SENTOLO, YOGYAKARTA

 


VISI
“Membentuk generasi Qur’an yang berjiwa
enterpreneurship dalam membangun
peradaban bangsa.”
MISI
Mencetak penghafal Qur’an yang
paham isi dan maknanya.
Mencetak pengusaha property yang
berakhlaq mulia dan menjadi teladan
di tengah masyarakat.
Mencetak generasi yang menginspirasi
masyarakat untuk peduli dan berbagi
pada kaum yang lemah.


informasi lengkap silakan buka link berikut :

 

Sunday, May 28, 2017

Membuat chat server wemos

Membuat chat server wemos,  salah satu fungsi nya adalah kontrol melalui wifi, tentunya ini setelah anda kembangkan ya , ini hanya basic concept saja

Membuat chat server wemos
Membuat chat server wemos


berikut kode nya

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <WiFiServer.h>

#define PORT 1000

WiFiClient client;
WiFiServer server(PORT);

String dataClient;
String dataServer;

const char* ssid = "HUAWEI-3962";  //  your network SSID (name)
const char* pass = "71538701";       // your network password

void setup() {
  Serial.begin(115200);
  Serial.print("Koneksi TCPIP ");
  Serial.println("Port : ");
  Serial.print(PORT);
  pinMode(BUILTIN_LED,OUTPUT);// output LED
  pinMode(12,OUTPUT);//output buzzer
  WiFi.begin(ssid,pass);
  while(WiFi.status()!=WL_CONNECTED){
    Serial.print(".");
    delay(500);
  }
Serial.println("Anda Terkoneksi ke Akses Point : ");
Serial.print(ssid);
Serial.println("Alamat IP : ");
Serial.print(WiFi.localIP());
delay(200);
server.begin();
}

void loop() {
  // put your main code here, to run repeatedly:
 while(!client.connected()){
  client=server.available();
 }
 while(client.connected()){
 if (client.available() > 0) {
      char thisChar = client.read();
      server.write(thisChar);
      client.print(thisChar);
      Serial.write(thisChar);
 }
}
}

selamat berexperiment..

Friday, May 19, 2017

Display tarif parkir / belanja / toll / dengan dot matrix dengan delphi 7 085743320570 (taufik adi)

Display tarif parkir / belanja / toll / dengan dot matrix dengan delphi 7 085743320570 (taufik adi)
jika anda memiliki kebutuhan untuk Display tarif parkir / belanja / toll / dengan dot matrix dengan delphi 7 085743320570 (taufik adi) atau untuk keperluan di kantor pajak / kasir toko / kasir apotik dan sebagainya

apotik dan sebagainya

display info pembayaran  parkir
display info pembayaran  parkir

display info pembayaran  parkir
display info pembayaran  parkir

display info pembayaran  parkir
display info pembayaran  parkir

display info pembayaran  parkir
display info pembayaran  parkir


Display tarif parkir / belanja / toll / dengan dot matrix dengan delphi 7 085743320570 (taufik adi)
Display tarif parkir / belanja / toll / dengan dot matrix dengan delphi 7 085743320570 (taufik adi)

kami menjual display dot matrix untuk menampilkan tarif semisal tarif biaya parkir, tarif belanja, atau bahkan tarif toll yang mana tampilannya dikirim dari PC, semisal kira kirim kan biaya parkir adalah 120.000 maka display ini akan menampilkan biaya yang haris di dalam ke dalam dot matrix display sehingga user area parkir dapat mengetahui berapa biaya yang harus di bayar tarnpa harus mendengarkan ucapan dari operator jaga kasir parkir di pintu/gate keluar area parkir.



Berikurt ini video uji Display tarif parkir / belanja / toll / dengan dot matrix 085743320570 (taufik adi) dengan interface delphi + komunikasi serial.





Display tarif parkir / belanja / toll / dengan dot matrix 085743320570 (taufik adi)

Display tarif parkir / belanja / toll / dengan dot matrix 085743320570 (taufik adi)

kami menjual display dot matrix untuk menampilkan tarif semisal tarif biaya parkir, tarif belanja, atau bahkan tarif toll yang mana tampilannya dikirim dari PC, semisal kira kirim kan biaya parkir adalah 120.000 maka display ini akan menampilkan biaya yang haris di dalam ke dalam dot matrix display sehingga user area parkir dapat mengetahui berapa biaya yang harus di bayar tarnpa harus mendengarkan ucapan dari operator jaga kasir parkir di pintu/gate keluar area parkir.
Display tarif parkir / belanja / toll / dengan dot matrix 085743320570 (taufik adi)
Display tarif parkir / belanja / toll / dengan dot matrix 085743320570 (taufik adi)
) atau untuk keperluan di kantor pajak / kasir toko / kasir apotik dan sebagainya

display info pembayaran  parkir
display info pembayaran  parkir

display info pembayaran  parkir
display info pembayaran  parkir

display info pembayaran  parkir
display info pembayaran  parkir

display info pembayaran  parkir
display info pembayaran  parkir

Berikurt ini video uji Display tarif parkir / belanja / toll / dengan dot matrix 085743320570 (taufik adi) dengan interface Vb + komunikasi serial.



Monday, May 15, 2017

Akses Sensor detak jantung easy pulse dengan arduino uno

baru saja saya menerima pekerjaan untuk mengakses sensor detak jantung dengan arduino uno, sensor yang dimaksud adalah easy pulse sensor yang gambar nya sebagai berikut :

easy pulse sensor arduino 
easy pulse sensor arduino
easy pulse sensor arduino 

berikut ini adalah video pengujuan Akses Sensor  detak jantung easy pulse dengan arduino uno


Thursday, May 11, 2017

Scanning Seven Segment

Scanning Seven Segment

Pada  percobaan  kali  ini  dilakukan  uji  coba  terhadap  dua  lampu  LED  7-segment  yang  dapat menampilkan representasi angka dari 0-9. Nyala pada 7-segment dapat diatur sedemikian rupa sesuai yang diinginkan,  pada percobaan ini penyalaan  yang terjadi ialah  hitung  mundur  angka dari 99 ke 00 lalu kembali lagi ke 99. Berikut komponen yang diperlukan pada percobaan ini:

Scanning Seven Segment Component
Scanning Seven Segment Component
Berikutnya setelah komponen yang diperlukan telah terkumpul,  susun rangkaian seperti terlihat 
pada gambar berikut:
Scanning Seven Segment Arduino
Scanning Seven Segment Arduino
Kemudian  pasang  USB  cable  pada  Arduino  dengan  port  USB  yang  terdapat  pada  PC  untuk menguplod program. Buka Arduino IDE, lalu ketikkan program berikut. 


int timer = 100;
void setup() { 
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
   pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
 // pinMode(9, OUTPUT);
 // digitalWrite(9, 0); // start with the "dot" off
 Serial.begin(9600);
}

void loop() {
    // write '1'
    for (int i=0; i<timer; i++){ 
    Serial.println("1\n");
 digitalWrite(2, 1);
 digitalWrite(3, 0);
 digitalWrite(4, 0);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 digitalWrite(9, 0);
 digitalWrite(10, 1);
  delay(5);
  // write '1'
 Serial.println("1\n");
 digitalWrite(2, 1);
 digitalWrite(3, 0);
 digitalWrite(4, 0);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 digitalWrite(9, 1);
 digitalWrite(10, 0);
 delay(5);

    }
    for (int i=0; i<timer; i++){ 
    Serial.println("2\n");
 digitalWrite(2, 0);
 digitalWrite(3, 0);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 1);
 digitalWrite(8, 0);
 digitalWrite(9, 0);
 digitalWrite(10, 1);
 delay(5);
  // write '2'
  Serial.println("2\n");
 digitalWrite(2, 0);
 digitalWrite(3, 0);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 1); 
 digitalWrite(8, 0);
 digitalWrite(9, 1);
 digitalWrite(10, 0);
 delay(5);
      }
    for (int i=0; i<timer; i++){ 
    Serial.println("3\n");
   digitalWrite(2, 0);
 digitalWrite(3, 0);
 digitalWrite(4, 0); 
 digitalWrite(5, 0);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 0);
 digitalWrite(9, 0);
 digitalWrite(10, 1);
 delay(5);
  // write '3'
  Serial.println("2\n");
 digitalWrite(2, 0);
 digitalWrite(3, 0);
 digitalWrite(4, 0);
 digitalWrite(5, 0);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 0);
 digitalWrite(9, 1);
 digitalWrite(10, 0);
 delay(5);

    }
}


Berikutnya compile dan uplod program ke dalam Arduino board. Perhatikan dan catat hasil yang terjadi, apakah sesuai dengan spesifikasi atau tidak.


Seven Segment

Seven Segment

Pada  percobaan  kali  ini  dilakukan  uji  coba  terhadap  lampu  LED  7-segment  yang  dapat menampilkan representasi angka dari 0-9.  Nyala pada 7-segment dapat diatur sedemikian rupa sesuai yang diinginkan,  pada percobaan ini penyalaan  yang terjadi ialah  hitung mundur  angka dari 9 ke 0 lalu kembali lagi ke angka 9. Berikut komponen yang diperlukan pada percobaan ini:
Seven Segment Component
Seven Segment Component
Pada Umumnya seven segment terdiri 7 batang  led  yang disusun membentuk angka 8 (seperti pada gambar diatas), dimana setiap segmentnya terdiri dari LED yang salah satu kaki terminal lednya  di jadikan  satu  atau  yang  disebut  dengan  common. Skema  dari  7  batang  led  ditandai dengan huruf a - g, sebagai berikut:

Common Anoda
Common  Anoda  merupakan  bagian  kaki  dari  anoda  (+)  yang  dijadikan  satu  dan  dihubungkan dengan  arus  positif  tegangan.  sedangkan  untuk  mengaktifkan  kaki  yang  lainnya  harus  di  beri tegangan negatif. atau led akan menyala jika dalam kondisi aktif low (diberi logika 0).
Misalkan ingin menampilkan angka 1, maka yang harus di lakukan adalah. kaki common di beri tegangan +, sedangkan kaki b dan c di beri tegangan -

Common Katoda
Common katoda ini kebalikannya dari common anoda, jadi kaki common yang disatukan adalah kaki katoda  (-),  sehingga  untuk  mengaktifkan  kaki  yang  lain  di  beri  tegangan  (+)  atau  diberi logik high (1).

Berikutnya setelah komponen yang diperlukan telah terkumpul, susun rangkaian seperti terlihat pada gambar berikut:

Rangkaian Seven Segment
Rangkaian Seven Segment
Kemudian  pasang  USB  cable  pada  Arduino  dengan  port  USB  yang  terdapat  pada  PC  untuk menguplod program. Buka Arduino IDE, lalu ketikkan program berikut. 

void setup() { 
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
 // pinMode(9, OUTPUT);
 // digitalWrite(9, 0); // start with the "dot" off
 Serial.begin(9600);
}

void loop() {
     // write '0'
     Serial.println("0\n");
 digitalWrite(2, 0);
 digitalWrite(3, 0);
 digitalWrite(4, 0);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 0);
 digitalWrite(8, 1);
 delay(500);
  // write '2'
  Serial.println("2\n");
 digitalWrite(2, 0);
 digitalWrite(3, 0);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 1);
 digitalWrite(8, 0);
 delay(500);
  // write '3'
  Serial.println("3\n");
 digitalWrite(2, 0);
 digitalWrite(3, 0);
 digitalWrite(4, 0);
 digitalWrite(5, 0);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 0);
 delay(500);
}


Berikutnya compile dan uplod program ke dalam Arduino board. Perhatikan dan catat hasil yang terjadi, apakah sesuai dengan spesifikasi atau tidak.


Keypad dan Buzzer

Keypad dan Buzzer

Pada percobaan kali ini dilakukan uji coba terhadap penggunaan keypad 4x3 dan buzzer.    Setiap tombol pada keypad nantinya akan merepresentasikan setiap karakter yang tertera pada keypad tersebut. Karakter angka yang ditekan nantinya akan langsung ditampilkan pada serial monitor yang terdapat  pada  Arduino  IDE.  Ketika  karakter  pada  keypad  yang  ditekan  ialah  „*‟  maka buzzer akan menyala dan berbunyi, sedangkan apabila yang ditekan ialah „#‟ maka buzzer akan mati. Berikut komponen yang diperlukan pada percobaan ini:

Keypad and Buzzer Component
Keypad and Buzzer Component
Kemudian  pasang  USB  cable  pada  Arduino  dengan  port  USB  yang  terdapat  pada  PC  untuk menguplod program. Buka Arduino IDE, lalu ketikkan program berikut. 

#include <Keypad.h>

const byte ROWS = 4; // Four rows
const byte COLS = 3; // Three columns
// Define the Keymap
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'#','0','*'} 
};
// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte rowPins[ROWS] = { 9, 8, 7, 6 };
// Connect keypad COL0, COL1 and COL2 to these Arduino pins.
byte colPins[COLS] = { 12, 11, 10 }; 

// Create the Keypad
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

#define buzzerpin 13

void setup()
{
  pinMode(buzzerpin,OUTPUT);
  digitalWrite(buzzerpin, HIGH);
  Serial.begin(9600);
}

void loop()
{
  char key = kpd.getKey();
  if(key) // Check for a valid key.
  {
    switch (key)
    {
      case '*':
        digitalWrite(buzzerpin, LOW);
        break;
      case '#':
        digitalWrite(buzzerpin, HIGH);
        break;
      default:
        Serial.println(key);
      }
    }
}

Berikutnya  compile  dan  upload  program  ke  dalam  Arduino  board.  Perhatikan  dan  catat  hasil yang terjadi, apakah sesuai dengan spesifikasi atau tidak.



Light Sensor

Light Sensor

Pada  percobaan  kali  ini  dilakukan  uji  coba  terhadap  penggunaan  light  sensor.  Pada  rangkaian akan  dipasangi  dengan  Light  Dependent  Resistor  dan  juga  LED.  Hasil  pembacaan  dari  sensor cahaya tersebut nantinya akan menentukan lamanya  cahaya  yang diberikan oleh  LED.  Berikut komponen yang diperlukan pada percobaan ini:
Light sensor component
Light sensor component
Berikutnya setelah komponen yang  diperlukan telah terkumpul, susun rangkaian seperti terlihat pada gambar berikut:

Light sensor arduino
Light sensor arduino
Kemudian  pasang  USB  cable  pada  Arduino  dengan  port  USB  yang  terdapat  pada  PC  untuk menguplod program. Buka Arduino IDE, lalu ketikkan program berikut. 

//Project 6 - Light Sensor
// Pin we will connect to LED 
int ledPin = 6; 
// Pin connected to LDR 
int ldrPin = 0; 
// Value read from LDR 
int lightVal = 0; 
void setup() 
{
  // Set both pins as outputs 
  pinMode(ledPin, OUTPUT); 
}
void loop() 
{
  // Read in value from LDR
  lightVal = analogRead(ldrPin); 
  // Turn LED on 
  digitalWrite(ledPin, HIGH); 
  // Delay of length lightVal
  delay(lightVal);
  // Turn LED off 
  digitalWrite(ledPin, LOW); 
  // Delay again
  delay(lightVal); 
}

Berikutnya  compile  dan  upload  program  ke  dalam  Arduino  board.  Perhatikan  dan  catat  hasil yang terjadi, apakah sesuai dengan spesifikasi atau tidak.

LCD

LCD

Pada percobaan kali ini dilakukan ujicoba untuk menggunakan LCD. Percobaan sederhana yang ingin ditampilkan pada layar ialah tulisan “helloworld”, kemudian tulisan tersebut nantinya dapat bergerak dari kanan ke kiri dan sebaliknya. Berikut komponen yang diperlukan pada percobaan ini:

LCD component
LCD component
Berikutnya setelah komponen yang  diperlukan telah terkumpul, susun rangkaian seperti terlihat pada gambar berikut:
LCD Arduino
LCD Arduino
Kemudian  pasang  USB  cable  pada  Arduino  dengan  port  USB  yang  terdapat  pada  PC  untuk

menguplod program. Buka Arduino IDE, lalu ketikkan program berikut. 

http://www.arduino.cc/en/Tutorial/LiquidCrystal

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

Untuk  membuat  tulisan  dapat  bergerak  dari  kiri  ke  kanan  dan  sebaliknya,  perlu  dilakukan beberapa penambahan seperi berikut.

void loop() {
  // scroll 13 positions (string length) to the left
  // to move it offscreen left:
  for (int positionCounter = 0; positionCounter < 13; positionCounter++) {
    // scroll one position left:
    lcd.scrollDisplayLeft();
    // wait a bit:
    delay(150);
  }

  // scroll 29 positions (string length + display length) to the right
  // to move it offscreen right:
  for (int positionCounter = 0; positionCounter < 29; positionCounter++) {
    // scroll one position right:
    lcd.scrollDisplayRight();
    // wait a bit:
    delay(150);
  }

    // scroll 16 positions (display length + string length) to the left
    // to move it back to center:
  for (int positionCounter = 0; positionCounter < 16; positionCounter++) {
    // scroll one position left:
    lcd.scrollDisplayLeft();
    // wait a bit:
    delay(150);
  }

  // delay at the end of the full loop:
  delay(1000);

}


Berikutnya  compile  dan  upload  program  ke  dalam  Arduino  board.  Perhatikan  dan  catat  hasil yang terjadi, apakah sesuai dengan spesifikasi atau tidak. 




Serial Temperature Sensor

Serial Temperature Sensor

Pada percobaan kali ini dilakukan pengukuran suatu suhu ruangan  dengan menggunakan sensor LM35. Suhu yang nantinya ditampilkan memiliki satuan derajat celcius dan dalam kisaran 0-100 derajat.  Suhu  tersebut  dapat  dilihat  dengan  menggunakan  serial  monitor  yang  terdapat  pada Arduino IDE. Berikut komponen yang diperlukan pada percobaan ini:

Serial temperature sensor component
Serial temperature sensor component
Berikutnya setelah komponen yang diperlukan telah terkumpul, susun rangkaian seperti terlihat pada gambar berikut:

Serial temperature sensor arduino
Serial temperature sensor arduino
Kemudian  pasang  USB  cable  pada  Arduino  dengan  port  USB  yang  terdapat  pada  PC  untuk menguplod program. Buka Arduino IDE, lalu ketikkan program berikut. 


int potPin = 0;
float temperature = 0;
void setup()
{
  Serial.begin(9600); 
  Serial.println("LM35 Thermometer ");
  analogReference(INTERNAL); //INTERNAL1V1 for Arduino Mega
}
void printTenths(int value) {
  // prints a value of 123 as 12.3
    Serial.print(value / 10);
    Serial.print(".");
    Serial.println(value % 10);
}
void loop() {
  int span = 20;
  int aRead = 0;
  for (int i = 0; i < span; i++) {
    aRead = aRead+analogRead(potPin);
  }
  aRead = aRead / 20;

  temperature = ((100*1.1*aRead)/1024)*10; 
  // convert voltage to temperature
  Serial.print("Analog in reading: ");
  Serial.print(long(aRead)); 
  // print temperature value on serial monitor
  Serial.print(" - Calculated Temp: ");
  printTenths(long(temperature));

  delay(500);
}


Berikutnya  compile  dan  upload  program  ke  dalam  Arduino  board.  Perhatikan  dan  catat  hasil yang terjadi, apakah sesuai dengan spesifikasi atau tidak.