//0,1_do,2_re,3_mi,4_fa,5_fa,6_sol,7_la,8_si
float nada[]={0,1046.5,1174.7,1318.5,1396.9,1568,1760,1975.5};
void setup()
{
pinMode(8, OUTPUT);
}
void loop()
{
for (int i = 2; i <= 8; i = i + (1)) {
tone(8,nada[(int)(i - 1)]);
delay(600);
noTone(8);
delay(600);
}
}
2. bluetooth
//PROGRAM FOR BLUETOOTH INTERFACE WITH ArduinoNano
//Dani Mardianto
//kirim data 1 untuk menyalakan LED pada D13
//kirim data 0 untuk mematikan0 LED pada D13
const int pinout = 10; // declare pinout with int data type and pin value
int inputdata = 0; //Variable for storing received data
void setup()
{
Serial.begin(9600); //Sets the baud rate for bluetooth pins
Serial.print("TEST PROGRAM\n");
Serial.print("BLUETOOTH WITH ARDUINO NANO\n");
pinMode(pinout, OUTPUT);
}
void loop()
{
if(Serial.available() > 0) // Send data only when you receive data:
{
inputdata = Serial.read(); //Read the incoming data & store into data
if(inputdata == '1')
{
digitalWrite(pinout, HIGH);
Serial.print("LED ON\n");
}
if(inputdata == '0')
{
digitalWrite(pinout, LOW);
Serial.print("LED OFF\n");
}
}
}
3. LED RGB
LED RGB
int merah = 11;
int hijau = 10;
int biru = 9;
void setup() {
// put your setup code here, to run once:
pinMode(merah, OUTPUT);
pinMode(hijau, OUTPUT);
pinMode(biru, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
//LED menyala warna merah
analogWrite(merah,250);
analogWrite(hijau,0);
analogWrite(biru,0);
delay(1000);
//LED menyala warna hijau
analogWrite(merah,0);
analogWrite(hijau,250);
analogWrite(biru,0);
delay(1000);
//LED menyala warna kuning
analogWrite(merah,250);
analogWrite(hijau,250);
analogWrite(biru,0);
delay(1000);
//LED menyala warna oranye
analogWrite(merah,250);
analogWrite(hijau,50);
analogWrite(biru,0);
delay(1000);
}
4. Potensio
potentiometer
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.print("Baca tegangan Analog Potensio\n");
}
void loop() {
// put your main code here, to run repeatedly:
int data=analogRead(A0);
delay(500);
Serial.print("data = ");
Serial.println(data);
}
5. JOY Stick
Joystick
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.print("TEST JOYSTICK\n");
}
void loop() {
// put your main code here, to run repeatedly:
int X=analogRead(A1);
delay(10);
int Y=analogRead(A0);
delay(500);
Serial.print("X,Y = (");
Serial.print(X);
Serial.print(",");
Serial.print(Y);
Serial.println(")");
}
6. LCD 16×2
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup(){
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
}
void loop()
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.write("Hallo");
lcd.setCursor(0, 1);
lcd.write("1234567890!@#$%^");
delay(1000);
}
//Sensor PIR, output ---|____ HIGH-LOW seting Delay_Time minimal
//setelah mendeteksi gerakan output HIGH selama 1,8S
//setelah 1,8S akan menjadi LOW selama 6S sebelum mendeteksi gerakan baru
volatile boolean dataPIR;
int temp;
int temp1;
void setup()
{
Serial.begin(9600);
pinMode(A0, INPUT);
dataPIR=0;
}
void loop(){
dataPIR = digitalRead(A0);
//mendeteksi ada gerakan
if (dataPIR==1){
if (temp1==1){
Serial.println("PIR mendeteksi ada gerakan:");
//tuliskan program dibawah ini, ketika mendeteksi gerakan:
}
delay(100);temp1 = temp1 + 1;
if (temp1%10==0) {
Serial.print("HIGH:");
Serial.println(temp1);}
}
//lama waktu LOW, sebelum bisa mendeteksi gerakan baru
if (temp<=70) { //counter menghitung 7 detik
delay(100);temp = temp + 1;
if (temp%10==0) {
Serial.print("LOW:");
Serial.println(temp);}
if (temp==70){Serial.println("PIR siap merespon gerakan baru:");}
}
if (dataPIR==0){temp1=0;} //reset counter
if (dataPIR==1){temp=0;} //reset counter jika ada gerakan
}
Terdapat 10 soal, kerjakan semua soal dengan santau tetapi serius. Soal soal ini menggunakan SubProgram yang dikombinasikan dengan materi matrix LED. Terdapat contoh program dan link simulasi proteus yang bisa di copy dan di download.
/*
* subProgram & matrix led.c
* 2MHz
* Created: 17/09/2018 20:21:48
* Author: dani Mardianto
*/
#include <mega16.h>
#include <delay.h>
char i;
//A//////////////////////////////////////////
void huruf_A()
{
//contoh A masih menggunakan biner
PORTA=0b01111100;
PORTB=0b11111110;delay_ms(10);PORTB=0xff;
PORTA=0b00001010;
PORTB=0b11111101;delay_ms(10);PORTB=0xff;
PORTA=0b00001001;
PORTB=0b11111011;delay_ms(10);PORTB=0xff;
PORTA=0b00001010;
PORTB=0b11110111;delay_ms(10);PORTB=0xff;
PORTA=0b01111100;
PORTB=0b11101111;delay_ms(10);PORTB=0xff;
}
//B//////////////////////////////////////////
void huruf_B()
{
//contoh B sudah menggunakan hexsa
PORTA=0x7f;
PORTB=0xfe; delay_ms(10); PORTB=0xff;
PORTA=0x49;
PORTB=0xfd; delay_ms(10); PORTB=0xff;
PORTA=0x49;
PORTB=0xfb; delay_ms(10); PORTB=0xff;
PORTA=0x49;
PORTB=0xf7; delay_ms(10); PORTB=0xff;
PORTA=0x36;
PORTB=0xef; delay_ms(10); PORTB=0xff;
}
//C//////////////////////////////////////////
void huruf_C()
{
//contoh C sudah menggunakan hexsa
PORTA=0x3e;
PORTB=0xfe; delay_ms(10); PORTB=0xff;
PORTA=0x41;
PORTB=0xfd; delay_ms(10); PORTB=0xff;
PORTA=0x41;
PORTB=0xfb; delay_ms(10); PORTB=0xff;
PORTA=0x41;
PORTB=0xf7; delay_ms(10); PORTB=0xff;
PORTA=0x41;
PORTB=0xef; delay_ms(10); PORTB=0xff;
}
//D//////////////////////////////////////////
void huruf_D()
{
//contoh D sudah menggunakan hexsa
PORTA=0x7f;
PORTB=0xfe; delay_ms(10); PORTB=0xff;
PORTA=0x41;
PORTB=0xfd; delay_ms(10); PORTB=0xff;
PORTA=0x41;
PORTB=0xfb; delay_ms(10); PORTB=0xff;
PORTA=0x41;
PORTB=0xf7; delay_ms(10); PORTB=0xff;
PORTA=0x3e;
PORTB=0xef; delay_ms(10); PORTB=0xff;
}
//E//////////////////////////////////////////
void huruf_E()
{
}
void main(void)
{
DDRB=0xff;
DDRA=0xff;
while (1)
{
// memanggil subProgram
for (i=0;i<20;i++){huruf_A();}
for (i=0;i<20;i++){huruf_B();}
for (i=0;i<20;i++){huruf_C();}
for (i=0;i<20;i++){huruf_D();}
}
}
Soal 1. dari program diatas akan menghasilkan tampilan seperti dibawah ini. tugasnya lengkapi/tambahi program tersebut dari yang bisa menampilkan ABCD bisa menampilkan A-Z dan angka 0-9
Soal 2. menampikan kata HALO pada matrix LED
Soal 3. menampilkan kata BUDI pada matrix LED
Soal 4 . menampilkan nama salah satu dari kelompok kalian.
Soal 5. menampilkan kata SMKN BANSARI pada matrix LED
Soal 6. membuat animasi counterUp 0-9
Soal 7. membuar animasi orang tersenyum dan melambaikan tangan
Soal 8. membuat huruf H berjalan
Soal 9. membuat tulisan berjalan HALO
Soal 10. Bebas kreatif, silahkan membuat suatu tampilan di matrix LED sesuai imajinasi kalian. jika sudah boleh menandai cek list nomor 10.
Dalam pembuatan laporan prakrin ini ditujukan untuk syarat sudah melaksanakan prakrin dan untuk kenaikan kelas XI ke XII, dalam laporan ini disesuaikan tempat prakrinnya, setiap laporan prakrin tidak boleh sama dengan teman satu tempat “yang dimaksudkan adalah judul laporan”, untuk format laporan sebagai berikut :
HALAMAN JUDUL
PENGESAHAN (dari dudi dan sekolahan)
PRAKATA
DAFTAR ISI
BAB I PENDAHULUAN (Latar Belakang, Gambaran Umum Perusahaan, Tujuan)
BAB II PROSES PELAKSANAAN (Waktu dan Tempat, Alat dan Bahan, Gambaran Pekerjaan)
BAB III PEMBAHASAN (Pembahasan, Implementasi Kerja)
BAB IV PENUTUP (Kesimpulan, Saran, Hasil yang Dicapai)
DAFTAR PUSTAKA
LAMPIRAN (Jurnal Kegiatan, Foto Kegiatan Prakrin)
Di bawah ini adalah contoh laporan prakrin, bisa kalian unduh / download
LAPORAN PRAKERIN UNDUH
*Catatan untuk contoh laporan tidak boleh diplagiat, kartal escort hanya sebagai contoh
*NB informasi lebih lanjut bisa menghubungi guru produktif TAV
Matik LED menggunakan teknik scaning untuk mengendalikan nyala LED. Dengan teknik ini memberi keuntungan dengan hanya menggunakan bebepa PORT dapat mengendalikan banyak sekali LED. Konsep scaning adalah menyalakan LED secara bergantian tetapi dilakukan secara cepat segingga LED terlihat menyala secara bersamaan.
Kali ini akan membahas mengenai Pulse With Modulator(PWM). Singkat cerita PWM bisa digunakan untuk mengendalikan nyala LED secara terang hingga redup, contoh penggunaan PWM lainnya adalah untuk mengatur kecepatan motor DC. Motor DC bisa diatur berputar cepat atau berputar lambat.
Mikrokontroler mempunyai funsi timer, timer dapat digungsikan untuk mengerjakan tuatu perintah/program dalam interfal waktu tertentu. Contoh sederhana dari timer adalah membuat clock 1 detik untuk membuat jam digital. catatan untuk kepresisian clock 1, detik lebih baik menggunakan komponen tambahan seperti IC RTC(Real Time Clock).
ATMega16 memiliki 3 buah timer: timer 0, timer 1 dan timer 2. setiap timer mempunyai kelebihan, pada kesempatan ini akan dibahas timer yang paling sederhana yaitu timer 0
Rangkaian 1. Contoh program Led berkediap setiap 1 setik.
Tutorial Analog to Digital Converter(ADC) dengan tampilan LED
ADC penampil LED <halaman ini>
ADC penampil LCD
ADC penampil LCD 10bit rev AVCC pin
Analog to Digital Converter(ADC) sebagaimana artinya adalah untuk mengubah data analog menjadi data digital. Kata sederhananya, sebuah voltmeter digital yang membaca tegangan dari battery kemudian ditampilkan berupa angka. Jadi dengan mikrokontroler dengan ADC bisa diprogram menjadi semacam voltmeter digital. Tidak sebatas voltmeter digital, karena banyak komponen elektronika juga menghasilkan atau mengeluarkan data tegangan analog yang kemudian dibaca mikrokontroler melalui ADC.
Interrupt adalah ketika mikrokontroler sedang mengerjakan suatu program, pada tegah-tengah mikrokontroler itu mengerjakan program tersebut interrupt aktif sehingga menghentikan aktifitas mikrokontroler dan mengganti dengan perintah lain. interupt sangat berguna misalnya sebagai input sensor atau untuk tombol darurat supaya segera di eksekusi