A. Universal Asynchronous Receiver Transmitter (UART)
Microcontroller ATmega328P |
Operating Voltage 5 V |
Input Voltage (recommended) 7 – 12 V |
Input Voltage (limit) 6 – 20 V |
Digital I/O Pins 14 (of which 6 provide PWM output) |
PWM Digital I/O Pins 6 |
Analog Input Pins 6 |
DC Current per I/O Pin 20 mA |
DC Current for 3.3V Pin 50 mA |
Flash Memory 32 KB of which 0.5 KB used by bootloader |
SRAM 2 KB |
EEPROM 1 KB |
Clock Speed 16 MHz |
Seperti yang dikatakan sebelumnya, nilai Resistor yang berbentuk Axial adalah diwakili oleh Warna-warna yang terdapat di tubuh (body) Resistor itu sendiri dalam bentuk Gelang. Umumnya terdapat 4 Gelang di tubuh Resistor, tetapi ada juga yang 5 Gelang.
Gelang warna Emas dan Perak biasanya terletak agak jauh dari gelang warna lainnya sebagai tanda gelang terakhir. Gelang Terakhirnya ini juga merupakan nilai toleransi pada nilai Resistor yang bersangkutan.
Tabel dibawah ini adalah warna-warna yang terdapat di Tubuh Resistor :
Masukkan angka langsung dari kode warna Gelang ke-1 (pertama)
Masukkan angka langsung dari kode warna Gelang ke-2
Masukkan angka langsung dari kode warna Gelang ke-3
Masukkan Jumlah nol dari kode warna Gelang ke-4 atau pangkatkan angka tersebut dengan 10 (10n)
Merupakan Toleransi dari nilai Resistor tersebut
Contoh :
Gelang ke 1 : Coklat = 1
Gelang ke 2 : Hitam = 0
Gelang ke 3 : Hijau = 5
Gelang ke 4 : Hijau = 5 nol dibelakang angka gelang ke-2; atau kalikan 105
Gelang ke 5 : Perak = Toleransi 10%
Maka nilai Resistor tersebut adalah 105 * 105 = 10.500.000 Ohm atau 10,5 MOhm dengan toleransi 10%.
Contoh-contoh perhitungan lainnya :
Merah, Merah, Merah, Emas ? 22 * 10² = 2.200 Ohm atau 2,2 Kilo Ohm dengan 5% toleransi
Kuning, Ungu, Orange, Perak ? 47 * 10³ = 47.000 Ohm atau 47 Kilo Ohm dengan 10% toleransi
Cara menghitung Toleransi :
2.200 Ohm dengan Toleransi 5% =
2200 – 5% = 2.090
2200 + 5% = 2.310
ini artinya nilai Resistor tersebut akan berkisar antara 2.090 Ohm ~ 2.310 Ohm
2. Hubungkan jumper seperti rangkaian dibawah
3. Buatlah listing program yang telah ada pada modul
4. periksakan rangkaian kepada asisten yang mengawas
5. Hidupkan semua supply
6. Upload program dari laptop ke modul
7. Tekan tombol Reset
8. Amati percobaan, jika tidak sesuai perbaiki rangkaian atau program
9. Jika sesuai, maka selesai dan demokan pada asisten yang mengawas
10.Jelaskan prinsip kerja + program dan hubungan keduanya kepada asisten
11.Demokan ke pembimbing praktikum
12.Matikan supply
d. Listing program [kembali]
#include<SPI.h> //Library for SPI
#define
LED 7
#define
button 2
#define
buzzer 4
int
buttonvalue;
int
x;
void setup ()
{
Serial.begin(115200); //Starts Serial
Communication at Baud Rate 115200
pinMode(button,INPUT); //Sets pin 2 as input
pinMode(LED,OUTPUT); //Sets pin 7 as Output
pinMode(buzzer, OUTPUT); // Sets pin 7 as Output
SPI.begin(); //Begins the SPI
commnuication
SPI.setClockDivider(SPI_CLOCK_DIV8); //Sets clock for SPI communication at 8
(16/8=2Mhz)
digitalWrite(SS,HIGH); // Setting SlaveSelect as
HIGH (So master doesnt connnect with slave)
}
void
loop()
{
byte Mastersend,Mastereceive;
buttonvalue = digitalRead(button); //Reads the status of the pin 2
if(buttonvalue == HIGH) //Logic for Setting x value (To
be sent to slave) depending upon input from pin 2
{
x = 1;
}
else
{
x = 0;
}
digitalWrite(SS, LOW); //Starts communication with Slave connected to master
Mastersend = x;
Mastereceive=SPI.transfer(Mastersend); //Send
the mastersend value to slave also receives value from slave
if(Mastereceive == 1) //Logic for setting the LED
output depending upon value received from slave
{
digitalWrite(LED,HIGH);
Serial.println("Master LED ON");
digitalWrite(buzzer, HIGH);
Serial.println("Master buzzer
ON");
delay(5000);
}
else
{
digitalWrite(LED,LOW); //Sets pin 7 LOW
Serial.println("Master LED OFF");
digitalWrite(buzzer, LOW);
Serial.println("Master buzzeR
OFF");
}
}
// SLAVE PROGRAM
#include<SPI.h>
#define
LEDpin 7
#define
buttonpin 2
volatile
boolean received;
volatile
byte Slavereceived,Slavesend;
int
buttonvalue;
int
x;
void
setup()
{
Serial.begin(9600);
pinMode(buttonpin,INPUT); //
Setting pin 2 as INPUT
pinMode(LEDpin,OUTPUT); // Setting pin 7 as OUTPUT
pinMode(MISO,OUTPUT); //Sets MISO as OUTPUT (Have to Send data to Master IN
SPCR |= _BV(SPE); //Turn on SPI in Slave Mode
received = false;
SPI.attachInterrupt(); //Interuupt ON is set for SPI commnucation
}
ISR
(SPI_STC_vect) //Inerrrput routine function
{
Slavereceived = SPDR; //
Value received from master if store in variable slavereceived
received = true; //Sets received as True
}
void
loop()
{
if(received) //Logic to SET LED
ON OR OFF depending upon the value recerived from master
{
if (Slavereceived==1)
{
digitalWrite(LEDpin,HIGH);
Serial.println("Slave LED
ON");
}else
{
digitalWrite(LEDpin,LOW); //Sets
pin 7 as LOW LED OFF
Serial.println("Slave LED
OFF");
}
buttonvalue = digitalRead(buttonpin); // Reads the status of the pin 2
if (buttonvalue == HIGH) //Logic
to set the value of x to send to master
{
x=1;
}else
{
x=0;
}
Slavesend=x;
SPDR = Slavesend; //Sends the x value to master
via SPDR
delay(500);
}
}
Pada percobaan modul 3 terkait komunikasi ini, digunakan 2 buah arduino sebagai MASTER dan SLAVE untuk melakukan komunikasi, untuk inputannya sendiri menggunakan pushbutton, untuk outputannya sendiri digunakan 2 buah LED dan 1 buzzer, . Pada percibaan ini, menggunakan jenis komunikasi serial yaitu SPI, yanag mana untuk SPI ini sendiri memiliki 4 buah pin, pada arduino uno pin 10, 11, 12, dan 13 merupakan pin SPI dengan pin 11 merupakan MOSI, pin 12 MISO, pin 13 SCK, dan pin-pin ini dihubungkan de pin yang sama. Untuk outputanya sendiri, LED dihubungkan ke pin 7, buzzer dihubungkan ke pin 4, dan button dihubungkan ke pin 2.
Ketika pushbutton pada master pulldown maka akan memberikan inputan logika HIGH dan data dari master di kirimkan ke slave dan slave membaca perintah tersebut, sehingga LED-BLUE yang terhubung
pada slave akan menyala atau ON. Dan ketika pushbutton pada slave disini pulldown maka akan memberikan logika inputan ialah HIGH dan slave mengirimkan data ke master dan master membaca data tersebut sehigga LED-YELLOW yang terhubung pada master akan menyala atau ON.
Soal Analisa:
1. Apa jenis komunikasi yang digunakan pada percobaan? simplex, half duplex, atau full duplex!
Jawab:
Pada percobaan 2 ini, jenis komunikasi yang digunakan ialah jenis full duplex, hal ini dikarenakan pada percobaan ini (rangkaian SPI) data bertransmisi tanpa adanyaproses yang mana data yang diterima oleh SLAVE dari MASTER, dapat langsung di transmisikan ke MASTER lagi
2. Jika serial begin pada SLAVE diubah jadi 9600 dan yang di MASTER tetap, apa yang terjadi pada program?
Jawab:
Jika serial begiin pada SLAVE diubah menjadi 9600 baud ratenya, sedangkan pada MASTER baud ratenya tetap, rangkaian dan program tetap berjalan dengan lancar, sama seperti sebelum baud rate pada SLAVE diubah. Hal ini dikarenakan untuk baud rate ini sendiri nantinya berpengaruh jika melakukan uploading, karena baud rate ini sendii berfungsi untuk menentukan kecepatan pengiriman data, namun untuk programnya sendiri tidak terjadi kesalahan dari analisa yag kami lakukan.
3. Jelaska fungsi clock speed (clock devider) pada percobaan? Kalau dirubah menjadi 16 apa yang terjadi?
Jawab:
Fungsi clock speed berguna untuk membagi clock pada suatu komunikasi . Pada percobaan, clock-nya di tuliskan (SPI_CLOCK_DIV8) yag berarti membagi clock pada komunikasi menjadi 16/8=2Mhz. Jika digantimenjadi 16, maka clock pada komunikasi mejadi 16/16=1Mhz. Pada rangkaian, dianalisa pengaruh terjadinya perubahan ini tidak memiliki dampak. Rangkaian dapat berjalan seperti sebelumnya
Tidak ada komentar:
Posting Komentar