Tugas Pendahuluan Percobaan 2 Kondisi 18
Pada tugas pendahuluan pertama modul 1 ini untuk percobaan 2 saya menggunakan kondisi 10. Soalnya yaitu :
MASTER
#include <SPI.h> //Deklarasi library SPI
#define button 2
void setup (void) {
pinMode(button, INPUT_PULLUP);
Serial.begin(115200 ); //Set baud rate 115200
digitalWrite(SS, HIGH);
// disable Slave Select
SPI.begin ();
SPI.setClockDivider(SPI_CLOCK_DIV8); //divide the clock by 8
}
void loop (void) {
char c;
int nilai=digitalRead(button);
if(nilai==0){
digitalWrite(SS, LOW); //enable Slave Select
// send test string
for (const char * p = "Hello, world!\r" ; c = *p; p++)
{
SPI.transfer (c);
Serial.print(c);
}
digitalWrite(SS, HIGH); // disable Slave Select
delay(2000);
}
}
SLAVE
#include <SPI.h>
#define led 2
char buff [50];
volatile byte indx;
volatile boolean process;
void setup (void) {
Serial.begin (115200); // harus sama antara master dan slave
pinMode(led, OUTPUT); // have to send on master in so it set as output
SPCR |= _BV(SPE); // turn on SPI in slave mode
indx = 0; // buffer empty
process = false;
SPI.attachInterrupt(); // turn on interrupt
}
ISR (SPI_STC_vect) // SPI interrupt routine
{
byte c = SPDR; // read byte from SPI Data Register
if (indx < sizeof buff) {
buff [indx++] = c; // save data in the next index in the array buff
if (c == '\r') //check for the end of the word
process = true;
}
}
void loop (void) {
if (process) {
digitalWrite(led, HIGH);
process = false; //reset the process
Serial.println (buff); //print the array on serial monitor
indx = 0; //reset button to zero
delay(1000);
}
else
{
digitalWrite(led, LOW);
}
}
5. Prinsip Kerja Rangkaian
[Kembali]
Pada percobaan 2 kondisi 18 di modul 1 ini, menggunakan dua arduino. Arduino uno pertama berfungsi sebagai master dan arduino kedua sebagai slave. Pada percobaan 2 ini menggunakan SPI, dimana SPI terdapat 4 pin yang digunakannya, yaitu pin 10 sebagai SS (Select Slave), pin 11 sebagai MOSI (Master Output Slave Input), pin 12 sebagai MISO (Master Input Slave Output), pin SCK (Clock). Pada pin 2 digital Master disambungkan push button. Pada pin 3 digital Slave disambungkan dengan buzzer. Pin 2 digital Slave dihubungkan dengan LED. Lalu kita buat program yang sesuai untuk menjalankan rangkaian pada proteus. Setelah itu dicopykan hex nya lalu dimasukkan ke arduino. Maka program akan berjalan sesuai dengan kondisi yang diinginkan, yaitu menambahkan buzzer sebagai input sehingga input yang tersedia adalah led dan buzzer.
6. Link Download [Kembali]
Download listing program master [disini]
Download listing program slave [disini]
Download library arduino [disini]
Download datasheet arduino [disini]
Download datasheet buzzer [disini]
Download datasheet LED [disini]
Tidak ada komentar:
Posting Komentar