Hell Yeah Pointer 1

Percobaan 1 Modul 3 μP μC





1. Komponen [kembali]


A. Arduino






Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain.



B. LED (Light Emitting Diode)



Light Emitting Diode atau sering disingkat dengan LED adalah komponen elektronika yang dapat memancarkan  cahaya monokromatik ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang terbuat dari bahan semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada jenis bahan semikonduktor yang dipergunakannya. LED juga dapat memancarkan sinar inframerah yang tidak tampak oleh mata seperti yang sering kita jumpai pada Remote Control TV ataupun Remote Control perangkat elektronik lainnya.


3. Button


4. Ground





2. Rangkaian Simulasi [kembali] 
 
Sebelum button ditekan

setelah button ditekan









3. Flowchart [Kembali]






4. Listing Program [Kembali]

A. 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);

  }

}


B. Slave


#include <SPI.h>

#define led 2


char buff [50];

volatile byte indx;

volatile boolean process;


void setup (void) {

  Serial.begin (115200);

  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. Video Praktikum [Kembali]







6. Kondisi [Kembali]

Percobaan 2 Serial Peripheral Interface (SPI):

1. Pada saat digunakan dua perangkat slave. Bagian mana yang akan diubah, apakah

program, rangkaian atau dua duanya?

 

Jawab:

 

Jika kita menggunakan dua perangkat slave maka yang perlu kita ubah yaitu pada

bagian rangkaian dan programnya. Karena pada dasarnya , seperti yang kita tau, untuk SPI ini dapat menggunakan dua atau lebih perangkat slave.Maka untuk menambahkan slave satu lagi dapat digunakan pin ss/cs dengan menghubungka slave kedua dengan pin

tersebut. Lalu menghubungkan rangkaian slave 2 ke kabel rangkaian slave 1 dan master. Seperti yang diperlihatkan pada gambar rangkaian dibawah:



Agar LED di Slave 1 hidup,  maka pada program arduino Slave 2 kita atur menjadi logika LOW di kedua kondisinya , sedangkan untuk program di Slave 1 kita atur menjadi berlogika HIGH dan LOW, begitu juga sebaliknya untuk

menghidupkan LED dislave 2 maka Slave 1 berlogika LOW untuk kedua kondisinya,

sedangkan slave satu berlogika HIGH dan LOW.


 


7. Link Download [Kembali]
    File HTML            [disini]
    File Rangkaian      [disini]
    Video Praktikum   [disini]

Tidak ada komentar:

Posting Komentar