Laporan 2 M2 up uc(Percobaan 3)



1. Tujuan  [Kembali]
  1. Memahami prinsip kerja PWM pada mikrokontroler
  2. Memahami prinsip kerja ADC pada mikrokontroler
  3. Menggunakan PWM dan ADC pada Arduino
2. Alat dan Bahan [Kembali] 

 
a. Arduino UNO 
        Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital  dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya.



    b. LM35 





            Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. LM35 memiliki keakuratan tinggi dan kemudahan perancangan jika dibandingkan dengan sensor suhu yang lain, LM35 juga mempunyai keluaran impedansi yang rendah dan linieritas yang tinggi sehingga dapat dengan mudah dihubungkan dengan rangkaian kendali khusus serta tidak memerlukan penyetelan lanjutan. LM35 berfungsi untuk melakukan pendeteksian terhadap suhu yang akan diukur, Sensor suhu LM35 ini mempunyai jangkauan pengukuran suhu antara 0 – 100 derajat Celcius dengan kenaikan 10 mV untuk tiap derajat Celcius yang berarti bahwa setiap kenaikan suhu (0C) maka akan terjadi kenaikan tegangan sebesar 10 mV, dimana output dari LM35 ini yang menyatakan kondisi perubahan dari suhu lingkungan. 


    c. Motor DC





        Motor Listrik DC atau DC Motor adalah suatu perangkat yang mengubah energi listrik menjadi energi kinetik atau gerakan (motion). Motor DC ini juga dapat disebut sebagai Motor Arus Searah. Seperti namanya, DC Motor memiliki dua terminal dan memerlukan tegangan arus searah atau DC (Direct Current) untuk dapat menggerakannya.


    d. Battery 



    Baterai (Battery) adalah sebuah alat yang dapat merubah energi kimia yang disimpannya menjadi energi Listrik yang dapat digunakan oleh suatu perangkat Elektronik. 

    e. LED 




    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.

    f. Resistor 



        Pada dasarnya Resistor adalah komponen Elektronika Pasif yang memiliki nilai resistansi atau hambatan tertentu yang berfungsi untuk membatasi dan mengatur arus listrik dalam suatu rangkaian Elektronika. 

3. Rangkaian Percobaan [Kembali]





4. Prinsip kerja dan Listing Program [Kembali]
  
PadaPada rangkaian percobaan 1 ini, terdiri atas beberapa komponen, yaitu arduino uno, LED, resistor, push button, power, dan ground. Percobaan yang dilakukan yaitu percobaan komunikasi SPI antara 2 buah arduino . Ketika button di tekan (ON),maka rangkaian akan terhubung,sehingga akan menjadi input pada master.Sinyal clock di alirkan dari master menuju slave melalui pin SCK (pin 13) yang memiliki fungsi untuk sinkronisasi. Untuk pin SS (pin 10) berguna untuk memilih slave mana yang akan di kirim data. Kemudian karna inputnya master dan outputnya slave,maka untuk komunikasi disini kita mengunakan pin MOSI (Master Input Serial Output) . Setelah data terbaca di slave ,maka akan diteruskan menuju pin 2 pada slave sebagai output sehingga LED akan ON. Sedangkan jika button tidak di tekan (OFF) maka LED pada slave nantinya akan OFF.
Listing Program

#define buzzer 7          

#define button 2

 int buttonvalue;

int x; 

void setup (void)

{

  Serial.begin(115200);                   //Starts Serial Communication at Baud Rate 115200

  pinMode(button,INPUT);                  //Sets pin 2 as input

  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(void)

{

  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(buzzer,HIGH);            //Sets pin 7 HIGH

    Serial.println("Master Buzzer ON");

  }

  else

  {

   digitalWrite(buzzer,LOW);            

   Serial.println("Master Buzzer OFF");

  }

}

 

//SLAVE
 
#include <SPI.h>
#define buzzerpin 7
#define buttonpin 2
 
volatile boolean received;
volatile byte Slavereceived,Slavesend;
int buttonvalue;
int x;
 
void setup()
{
  Serial.begin(115200);
 
  pinMode(buttonpin,INPUT);       // Setting pin 2 as INPUT
  pinMode(buzzerpin,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 Buzzer ON OR OFF depending upon the value recerived from master
   {
      if (Slavereceived==1)
      {
        digitalWrite(buzzerpin,HIGH);         //Sets pin 7 as HIGH LED ON
        Serial.println("Slave Buzzer ON");
      }
      else
      {
        digitalWrite(buzzerpin,LOW);          //Sets pin 7 as LOW LED OFF
        Serial.println("Slave Buzzer 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
   }
}

5. Video Percobaan [Kembali]









6. Analisa [Kembali]

1. Analisa kenapa jika pin SS tidak dihubungkan tetap dapat mengirimkan data dari master ke slave?

Jawab:

Dapat dianalisis dari percobaan pin SS adatau slave selec tini adalah pin yang digunakan untuk memilih slave mana yang akan diajak berkomunikasi oleh master. (dengan asumsi lebih dari satu slave device).Pin SS lah yang akan bergantian memilih slave mana yang akan diajak berkomunikasi dengan master, sehingga pada percobaan ketika pin ss tidak terhubung tapi tetap dapat mengirimkan data karena device atau laptop lah yang telah menjadi Slave spesifik.

2. Analisa apa yang terjadi bila kita tidak menghubungkan pin SCLK? 

Pada percobaan ini merupakan komunikasi SPI yang mana sangat dipengarahi oleh pewaktuan. SCLK ini adalah clock yang dihasilkan master yang berguna menandakan komuniaksi SPI dan untuk melakukan shifting terhadap shift register dari kedua device. Jika pin SCLK tidak terhubung maka data tidak dapat dikrim ataupun diterima.


7. Link Download [Kembali]
Download Rangkaian percobaan 1 disini
Download Video Percobaan 1 disini
Download Datasheet Listing Program 1. disini
Download HTML disini
Download Datasheet Arduino disini
Download Datasheet LED disini






















Tidak ada komentar:

Posting Komentar

Bahan Presentasi  Mata Kuliah Elektronika 2021 O L E H Nadya utari 2010951021 Dosen pengampu : Dr.Darwison,M.T Program studi : Teknik Elektr...