Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Senin, 16 November 2020

Cara Mengakses dan Pemrograman MQ-3 Gas Sensor (Alcohol, Ethanol, Smoke) Menggunakan Arduino Uno

- Tidak ada komentar

 Arduino Indonesia akan berbagi tentang Cara Mengakses dan Pemrograman MQ-3 Gas Sensor (Alcohol, Ethanol, Smoke) Menggunakan Arduino Uno. Pada kali ini Arduino akan membaca data keluaran analog dari modul sensor MQ-3. 


Baca Juga : Cara Mengakses dan Pemrograman MQ-2 Gas Sensor (Methane, Butane, LPG, Smoke) Menggunakan Arduino Uno .


Berikut ini adalah Schematics Diagram dari MQ-3 Gas Sensor (Alcohol, Ethanol, Smoke) Menggunakan Arduino Uno :

 

Berikut ini adalah Hardware yang dibutuhkan :
1. Arduino Uno R3 >>> BELI DISINI
2. MQ-3 Gas Sensor (Alcohol, Ethanol, Smoke) >>> BELI DISINI
3. Kabel Jumper Secukupnya >>> BELI DISINI


Baca Juga : MQ-3 Gas Sensor (Alcohol, Ethanol, Smoke) .


Berikut ini adalah Code Programnya :

/***************************

Cara Mengakses dan Pemrograman MQ-3 Gas Sensor (Alcohol, Ethanol, Smoke) Menggunakan Arduino Uno

Oleh : Arduino Indonesia
Website : www.arduinoindonesia.id
Toko Online : www.workshopelectronics3in1.com
Blog : www.edukasielektronika.com

Copyright @2020

****************************/

const int MQ3 = A0;
int nilaiSensor = 0;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  nilaiSensor = analogRead(MQ3);
  Serial.print("sensor = ");
  Serial.println(nilaiSensor);  
  delay(2);
}

 

Setelah Program diatas di upload, silahkan buka Serial Monitor. Maka, akan tampil hasil Kondisi yang di inginkan.

 

 

 


 

Sabtu, 07 November 2020

Cara Mengakses dan Pemrograman MQ-2 Gas Sensor (Methane, Butane, LPG, Smoke) Menggunakan Arduino Uno

- 2 komentar

Arduino Indonesia akan berbagi tentang Cara Mengakses dan Pemrograman MQ-2 Gas Sensor (Methane, Butane, LPG, Smoke) Menggunakan Arduino Uno. Pada percobaan kali ini Arduino akan membaca data keluaran analog dari modul sensor MQ-2. Untuk awal kita akan coba membaca dengan Serial Monitor saja dengan satuan PPM. 

 

Baca Juga : Alat Pendeteksi Kebocoran Gas LPG, Pendeteksi Asap, dan Gas Metana Sederhana (Sensor Gas Dengan Menggunakan Arduino Uno dan Sensor Gas MQ2) .


Berikut ini adalah Schematics Diagram dari MQ-2 Gas Sensor (Methane, Butane, LPG, Smoke) Menggunakan Arduino Uno :

 


Berikut ini adalah Hardware yang dibutuhkan :
1. Arduino Uno R3 >>> BELI DISINI
2. MQ-2 Gas Sensor (Methane, Butane, LPG, Smoke) >>> BELI DISINI
3. Kabel Jumper Secukupnya >>> BELI DISINI


Download Library Sensor Gas MQ-2 silahkan >>> KLIK DISINI


Berikut ini adalah Code Programnya :

/***************************

Cara Mengakses dan Pemrograman MQ-2 Gas Sensor (Methane, Butane, LPG, Smoke) Menggunakan Arduino Uno

Oleh : Arduino Indonesia
Website : www.arduinoindonesia.id
Toko Online : www.workshopelectronics3in1.com
Blog : www.edukasielektronika.com

Copyright @2020

****************************/

#include <MQ2.h>

//change this with the pin that you use
int pin = A0;
int lpg, co, smoke;

MQ2 mq2(pin);

void setup()
{
  Serial.begin(9600);
  mq2.begin();
}

void loop()
{
  /*read the values from the sensor, it returns
  *an array which contains 3 values.
  * 1 = LPG in ppm
  * 2 = CO in ppm
  * 3 = SMOKE in ppm
  */
  float* values= mq2.read(true); //set it false if you don't want to print the values in the Serial
 
  //lpg = values[0];
  lpg = mq2.readLPG();
  //co = values[1];
  co = mq2.readCO();
  //smoke = values[2];
  smoke = mq2.readSmoke();
 
  delay(1000);
}


Setelah Program diatas di upload, silahkan buka Serial Monitor. Maka, akan tampil hasil Kondisi yang di inginkan.

Kamis, 05 November 2020

Cara Mengakses dan Pemrograman Sensor Gyroscope dan Accelerometer MPU6050 Menggunakan Arduino Uno

- Tidak ada komentar

Arduino Indonesia akan berbagi tentang Cara Mengakses dan Pemrograman Sensor Gyroscope dan Accelerometer MPU6050 Menggunakan Arduino Uno. Pada percobaan kali ini kita akan coba menggunakan Sensor Gyroscope dan Accelerometer MPU6050 untuk mendapatkan nilai yaw, pitch, dan roll. Pitch adalah rotasi ke axis-x, roll adalah rotasi ke axis-y, dan yaw adalah nilai rotasi ke axis-z. Hasil yang didapatkan pada percobaan ini akan ditampilkan pada bentuk 3D.


Baca Juga : Sensor Gyroscope dan Accelerometer MPU6050 .


Berikut ini adalah Schematics diagram dari Sensor Gyroscope dan Accelerometer MPU6050 Menggunakan Arduino Uno 

 


 

Berikut ini adalah Hardware yang dibutuhkan :
1. Arduino Uno R3 >>> BELI DISINI
2. Sensor Gyroscope dan Accelerometer MPU6050 >>> BELI DISINI
3. Kabel Jumper Secukupnya >>> BELI DISINI

 

Download Library Sensor Gyroscope dan Accelerometer MPU6050 >>> KLIK DISINI

Download Library I2Cdev >>> KLIK DISINI.


Berikut ini adalah Code Programnya :

/***************************

Cara Mengakses dan Pemrograman Sensor Gyroscope dan Accelerometer MPU6050 Menggunakan Arduino Uno

Oleh : Arduino Indonesia
Website : www.arduinoindonesia.id
Toko Online : www.workshopelectronics3in1.com
Blog : www.edukasielektronika.com

Copyright @2020

****************************/
#include "I2Cdev.h"
#include "MPU6050_6Axis_MotionApps20.h"
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
    #include "Wire.h"
#endif

MPU6050 mpu;

#define OUTPUT_READABLE_YAWPITCHROLL

#define LED_PIN 13
bool blinkState = false;

bool dmpReady = false;  // set true if DMP init was successful
uint8_t mpuIntStatus;   // holds actual interrupt status byte from MPU
uint8_t devStatus;      // return status after each device operation (0 = success, !0 = error)
uint16_t packetSize;    // expected DMP packet size (default is 42 bytes)
uint16_t fifoCount;     // count of all bytes currently in FIFO
uint8_t fifoBuffer[64]; // FIFO storage buffer

// orientation/motion vars
Quaternion q;           // [w, x, y, z]         quaternion container
VectorInt16 aa;         // [x, y, z]            accel sensor measurements
VectorInt16 aaReal;     // [x, y, z]            gravity-free accel sensor measurements
VectorInt16 aaWorld;    // [x, y, z]            world-frame accel sensor measurements
VectorFloat gravity;    // [x, y, z]            gravity vector
float euler[3];         // [psi, theta, phi]    Euler angle container
float ypr[3];           // [yaw, pitch, roll]   yaw/pitch/roll container and gravity vector

// packet structure for InvenSense teapot demo
uint8_t teapotPacket[14] = { '$', 0x02, 0,0, 0,0, 0,0, 0,0, 0x00, 0x00, '\r', '\n' };

volatile bool mpuInterrupt = false;

void dmpDataReady()
{
  mpuInterrupt = true;
}

void setup()
{
  Serial.begin(115200);
  while (!Serial);
  #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
      Wire.begin();
      TWBR = 24; // 400kHz I2C clock (200kHz if CPU is 8MHz)
  #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE
      Fastwire::setup(400, true);
  #endif

  // initialize device
  Serial.println(F("Initializing I2C devices..."));
  mpu.initialize();

  // verify connection
  Serial.println(F("Testing device connections..."));
  Serial.println(mpu.testConnection() ? F("MPU6050 connection successful") : F("MPU6050 connection failed"));

  // wait for ready
  Serial.println(F("\nSend any character to begin DMP programming and demo: "));
  while (Serial.available() && Serial.read()); // empty buffer
  while (!Serial.available());                 // wait for data
  while (Serial.available() && Serial.read()); // empty buffer again

  // load and configure the DMP
  Serial.println(F("Initializing DMP..."));
  devStatus = mpu.dmpInitialize();

  // supply your own gyro offsets here, scaled for min sensitivity
  mpu.setXGyroOffset(220);
  mpu.setYGyroOffset(76);
  mpu.setZGyroOffset(-85);
  mpu.setZAccelOffset(1788); // 1688 factory default for my test chip

  // make sure it worked (returns 0 if so)
  if (devStatus == 0)
  {
    // turn on the DMP, now that it's ready
    Serial.println(F("Enabling DMP..."));
    mpu.setDMPEnabled(true);

    // enable Arduino interrupt detection
    Serial.println(F("Enabling interrupt detection (Arduino external interrupt 0)..."));
    attachInterrupt(0, dmpDataReady, RISING);
    mpuIntStatus = mpu.getIntStatus();

    // set our DMP Ready flag so the main loop() function knows it's okay to use it
    Serial.println(F("DMP ready! Waiting for first interrupt..."));
    dmpReady = true;

    // get expected DMP packet size for later comparison
    packetSize = mpu.dmpGetFIFOPacketSize();
  }
  else
  {
    // ERROR!
    // 1 = initial memory load failed
    // 2 = DMP configuration updates failed
    // (if it's going to break, usually the code will be 1)
    Serial.print(F("DMP Initialization failed (code "));
    Serial.print(devStatus);
    Serial.println(F(")"));
  }

  // configure LED for output
  pinMode(LED_PIN, OUTPUT);
}

void loop()
{
  if (!dmpReady) return;
  while (!mpuInterrupt && fifoCount < packetSize)
  {
    
  }

  // reset interrupt flag and get INT_STATUS byte
  mpuInterrupt = false;
  mpuIntStatus = mpu.getIntStatus();

  // get current FIFO count
  fifoCount = mpu.getFIFOCount();

  // check for overflow (this should never happen unless our code is too inefficient)
  if ((mpuIntStatus & 0x10) || fifoCount == 1024)
  {
    // reset so we can continue cleanly
    mpu.resetFIFO();
    Serial.println(F("FIFO overflow!"));

    // otherwise, check for DMP data ready interrupt (this should happen frequently)
  }
  else if (mpuIntStatus & 0x02)
  {
    // wait for correct available data length, should be a VERY short wait
    while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount();

    // read a packet from FIFO
    mpu.getFIFOBytes(fifoBuffer, packetSize);
        
    // track FIFO count here in case there is > 1 packet available
    // (this lets us immediately read more without waiting for an interrupt)
    fifoCount -= packetSize;

    #ifdef OUTPUT_READABLE_QUATERNION
    // display quaternion values in easy matrix form: w x y z
    mpu.dmpGetQuaternion(&q, fifoBuffer);
    Serial.print("quat\t");
    Serial.print(q.w);
    Serial.print("\t");
    Serial.print(q.x);
    Serial.print("\t");
    Serial.print(q.y);
    Serial.print("\t");
    Serial.println(q.z);
    #endif

    #ifdef OUTPUT_READABLE_EULER
    // display Euler angles in degrees
    mpu.dmpGetQuaternion(&q, fifoBuffer);
    mpu.dmpGetEuler(euler, &q);
    Serial.print("euler\t");
    Serial.print(euler[0] * 180/M_PI);
    Serial.print("\t");
    Serial.print(euler[1] * 180/M_PI);
    Serial.print("\t");
    Serial.println(euler[2] * 180/M_PI);
    #endif

    #ifdef OUTPUT_READABLE_YAWPITCHROLL
    // display Euler angles in degrees
    mpu.dmpGetQuaternion(&q, fifoBuffer);
    mpu.dmpGetGravity(&gravity, &q);
    mpu.dmpGetYawPitchRoll(ypr, &q, &gravity);
    Serial.print("ypr\t");
    Serial.print(ypr[0] * 180/M_PI);
    Serial.print("\t");
    Serial.print(ypr[1] * 180/M_PI);
    Serial.print("\t");
    Serial.println(ypr[2] * 180/M_PI);
    #endif

    #ifdef OUTPUT_READABLE_REALACCEL
    // display real acceleration, adjusted to remove gravity
    mpu.dmpGetQuaternion(&q, fifoBuffer);
    mpu.dmpGetAccel(&aa, fifoBuffer);
    mpu.dmpGetGravity(&gravity, &q);
    mpu.dmpGetLinearAccel(&aaReal, &aa, &gravity);
    Serial.print("areal\t");
    Serial.print(aaReal.x);
    Serial.print("\t");
    Serial.print(aaReal.y);
    Serial.print("\t");
    Serial.println(aaReal.z);
    #endif

    #ifdef OUTPUT_READABLE_WORLDACCEL
    // display initial world-frame acceleration, adjusted to remove gravity
    // and rotated based on known orientation from quaternion
    mpu.dmpGetQuaternion(&q, fifoBuffer);
    mpu.dmpGetAccel(&aa, fifoBuffer);
    mpu.dmpGetGravity(&gravity, &q);
    mpu.dmpGetLinearAccel(&aaReal, &aa, &gravity);
    mpu.dmpGetLinearAccelInWorld(&aaWorld, &aaReal, &q);
    Serial.print("aworld\t");
    Serial.print(aaWorld.x);
    Serial.print("\t");
    Serial.print(aaWorld.y);
    Serial.print("\t");
    Serial.println(aaWorld.z);
    #endif
    
    #ifdef OUTPUT_TEAPOT
    // display quaternion values in InvenSense Teapot demo format:
    teapotPacket[2] = fifoBuffer[0];
    teapotPacket[3] = fifoBuffer[1];
    teapotPacket[4] = fifoBuffer[4];
    teapotPacket[5] = fifoBuffer[5];
    teapotPacket[6] = fifoBuffer[8];
    teapotPacket[7] = fifoBuffer[9];
    teapotPacket[8] = fifoBuffer[12];
    teapotPacket[9] = fifoBuffer[13];
    Serial.write(teapotPacket, 14);
    teapotPacket[11]++; // packetCount, loops at 0xFF on purpose
    #endif

    // blink LED to indicate activity
    blinkState = !blinkState;
    digitalWrite(LED_PIN, blinkState);
  }
}


Setelah Program diatas di upload, silahkan buka Serial Monitor. Maka, akan tampil hasil Kondisi yang di inginkan.

 

Baca juga :  Teknologi IoT

 

 

Selasa, 03 November 2020

Cara Mengakses dan Pemrograman Sensor Berat (Load Cell) Menggunakan Arduino Uno

- 5 komentar

Arduino Indonesia akan berbagi tentang Cara Mengakses dan Pemrograman Sensor Berat (Load Cell) Menggunakan Arduino Uno. Sebagai langkah awal, buat mekanis dudukan untuk load cell dan penampang untuk benda yang akan di ukur beratnya seperti gambar dibawah ini :

 


 

Baca Juga :  Sensor Berat (Load Cell) .


Pada proyek ini Arduino akan membaca berat suatu benda dengan menggunakan sensor load cell. Output dari load cell akan dikuatkan dahulu melalui modul HX711. Hasil akhir dari contoh proyek ini adalah berat yang terukur dalam satuan kilogram akan ditampilkan pada Serial Monitor. 


Berikut ini adalah Schematics Diagram dari Sensor Berat (Load Cell) Menggunakan Arduino Uno :

 



Berikut ini adalah Hardware yang dibutuhkan :
1. Arduino Uno R3 >>> BELI DISINI
2. Sensor Berat (Load Cell) >>> BELI DISINI
3. Modul HX711 >>> BELI DISINI
4. Kabel Jumper Secukupnya >>> BELI DISINI


Pada proyek ini terdapat dua program terkait pemrograman yang harus dibuat yaitu program untuk kalibrasi terkait pembacaan berat dari sensor load cell dan program untuk membaca berat benda. Namun, sebelum kita melangkah pada bagian pemrograman yang ada silahkan untuk Download Library HX711 >>> KLIK DISINI


Setelah berhasil melakukan instalasi library HX711, maka langkah selanjutnya adalah membuat program kalibrasi untuk mencocokkan input dengan output sensor. 


Berikut ini adalah Code Programnya :

/***************************

Cara Mengakses dan Pemrograman Sensor Berat (Load Cell) Menggunakan Arduino Uno

Oleh : Arduino Indonesia
Website : www.arduinoindonesia.id
Toko Online : www.workshopelectronics3in1.com
Blog : www.edukasielektronika.com

Copyright @2020

****************************/

#include "HX711.h"

HX711 scale(3, 2);

float calibration_factor = 1000; // this calibration factor is adjusted according to my load cell
float units;
float ounces;

void setup()
{
  Serial.begin(9600);
  Serial.println("HX711 calibration sketch");
  Serial.println("Remove all weight from scale");
  Serial.println("After readings begin, place known weight on scale");
  Serial.println("Press + or a to increase calibration factor");
  Serial.println("Press - or z to decrease calibration factor");

  scale.set_scale();
  scale.tare();  //Reset the scale to 0

  long zero_factor = scale.read_average(); //Get a baseline reading
  Serial.print("Zero factor: "); //This can be used to remove the need to tare the scale. Useful in permanent scale projects.
  Serial.println(zero_factor);
}

void loop()
{
  scale.set_scale(calibration_factor); //Adjust to this calibration factor

  Serial.print("Reading: ");
  units = scale.get_units(), 1;
  if (units < 0)
  {
    units = 0.00;
  }
  Serial.print(units);
  Serial.print(" gram");
  Serial.print(" calibration_factor: ");
  Serial.print(calibration_factor);
  Serial.println();
  delay(1000);

  if(Serial.available())
  {
    char temp = Serial.read();
    if(temp == '+' || temp == 'a')
      calibration_factor += 50;
    else if(temp == '-' || temp == 'z')
      calibration_factor -= 50;
  }
}

 

Setelah membuat program dan memahami setiap barisnya, maka langkah selanjutnya compile sketch yang telah dibuat dan upload program tersebut ke Arduino. Setelah proses upload selesai, buka serial monitor pada Arduino IDE sehingga nilai terkait berat yang terbaca dapat terlihat.


Untuk melakukan proses kalibrasi, jangan tempatkan benda apapun diatas penampang sensor. Perhatikan nilai berat yang tampil pada Serial Monitor Arduino IDE, kemudian sesuaikan nilai berat tersebut dengan cara mengatur nilai dari variabel sampai nilai berat yang tampil pada Serial Monitor Arduino IDE mencapai 0 gram. 


Selain cara diatas, proses kalibrasi dapat dilakukan dengan cara menempatkan benda yang sudah kita ketahui beratnya diatas penampang sensor. Kemudian, perhatikan nilai berat yang tampil pada Serial Monitor Arduino IDE, lalu sesuaikan nilai dari berat tersebut dengan cara mengatur nilai dari variabel sampai nilai berat yang tampil pada Serial Monitor Arduino IDE sesuai dengan berat benda aktual yang sudah kita ketahui. 

 

Untuk melakukan pengukuran Berat, Berikut ini adalah Code Programnya :

/***************************

Cara Mengakses dan Pemrograman Sensor Berat (Load Cell) Menggunakan Arduino Uno

Oleh : Arduino Indonesia
Website : www.arduinoindonesia.id
Toko Online : www.workshopelectronics3in1.com
Blog : www.edukasielektronika.com

Copyright @2020

****************************/

#include "HX711.h"

#define DOUT  3
#define CLK  2

HX711 scale;

float calibration_factor = -2380; //Hasil Kalibrasi
float units;

void setup()
{
  Serial.begin(9600);
  scale.begin(DOUT, CLK);
  scale.set_scale();
  scale.tare();  //Reset the scale to 0

  long zero_factor = scale.read_average(); //Get a baseline reading
  Serial.print("Zero factor: "); //This can be used to remove the need to tare the scale. Useful in permanent scale projects.
  Serial.println(zero_factor);
}

void loop()
{
  scale.set_scale(calibration_factor); //Adjust to this calibration factor

  Serial.print("Reading: ");
  units = scale.get_units(), 1;
  if (units < 0)
  {
    units = 0.00;
  }
  Serial.print("Berat: ");
  Serial.print(units);
  Serial.print(" Gram");
  Serial.println();
  delay(1000);
}

 

Setelah Program diatas di upload, silahkan buka Serial Monitor. Maka, akan tampil hasil Kondisi yang di inginkan.

 

Baca juga :  Cara Menerapkan Machine Learning dalam Proyek Data Science

 

 



Minggu, 01 November 2020

Cara Mengakses dan Pemrograman Reed Switch Sensor Menggunakan Arduino Uno

- Tidak ada komentar

Arduino Indonesia akan berbagi tentang Cara Mengakses dan Pemrograman Reed Switch Sensor Menggunakan Arduino Uno. Pada percobaan kali ini akan membaca input dari Reed Switch Sensor. Reed Switch Sensor akan mengeluarkan output digital 0 dan 1. Arduino akan menyalakan atau memadamkan LED dan mengirim string ke serial monitor pada Arduino IDE sesuai kondisi yang didapat.

 

Baca Juga : Reed Switch Sensor .

 

Berikut ini adalah Schematics Diagram dari Reed Switch Sensor Menggunakan Arduino Uno :



 

Berikut ini adalah Hardware yang dibutuhkan :
1. Arduino Uno R3 >>> BELI DISINI
2. Reed Switch Sensor >>> BELI DISINI
3. Kabel Jumper Secukupnya >>> BELI DISINI


Berikut ini adalah Code Programnya :

/***************************

Cara Mengakses dan Pemrograman Reed Switch Sensor Menggunakan Arduino Uno

Oleh : Arduino Indonesia
Website : www.arduinoindonesia.id
Toko Online : www.workshopelectronics3in1.com
Blog : www.edukasielektronika.com

Copyright @2020

****************************/

int LED = 13;
int ReedSwitch = 6;

void setup()
{
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  pinMode(ReedSwitch, INPUT);
}

void loop()
{
  int nilai = digitalRead(ReedSwitch);
  if(nilai == HIGH)
  {
    digitalWrite(LED, HIGH);
    Serial.println("terbuka");
  }
  else
  {
    digitalWrite(LED, LOW);
    Serial.println("tertutup");
  }
}

 

Setelah Program diatas di upload, silahkan buka Serial Monitor. Maka, akan tampil hasil Kondisi yang di inginkan.