Minggu, 25 Februari 2018

HX711 7segment 4digit Arduino nano

Timbangan ini saya buat berdasar link di bwh:
https://github.com/giech/arduino_scale
Terima kasih.

Tadinya menggunakan arduino Attiny85 digispark berhubung terjadi kebihan pada sket coding akhirnya saya beralih menggunakan Arduino nano dengan sedikit perubahan skema dan pin.
***Nilai plusnya coding ini sbb:
1. Bisa menimbang bobot mulai dari >1Kg s/d <150Kg dan cukup stabil.
2. Display nya besar sehingga memudahkan pembacaan.
***Nilai minusnya sbb:
1. Tampilan displaynya berkedip kedip sblm ada beban, saya tdk tahu bagian coding yg perlu diubah agar tdk berkedip.

Coding di bwh:
 /*
 * Author: Ilias Giechaskiel
 * Website: https://ilias.giechaskiel.com
 * Description: Code for a digital scale with auto-reset, seven-segment displays
 * and the HX711 ADC converter on an ATtiny85
 *
 */


/* LIBRARY INCLUDES */
// LedControl is necessary before ScaleDisplay due to the way the Arduino IDE works
#include <HX711.h>
#include <LedControl.h>
#include <ScaleDisplay.h>

/* GLOBAL DEFINES */

// Uncomment this if you have set the fuses such that the RESET pin can be used for I/O
//#define ENABLE_TARE_PIN
// Pin used for zero-ing the scale (removing the tare weight from the gross weight)
#define TARE_PIN A5

// Pin used to control power output
#define POWER_PIN A3

// Number of readings to average weight calculations
#define AV_NUM_READS 5

// Readings are considered stable after this many milliseconds, if they don't
// deviate from average by the given threshold in KG
#define STABLE_TIME_MS 5000
#define THRESHOLD 0.15

// Delay between powering up HX711 module and doing readings
#define HX711_POWER_UP_DELAY 300

// Delay needed for considering a button pressed
#define BUTTON_PRESS_DELAY 100

// Delay after which you timeout if HX711 has not responded
#define TIMEOUT_DELAY 1000

// Scale-specific number (see https://github.com/bogde/HX711 for details)
#define SCALING -13665.19 //untuk kalibrasi

/* GLOBAL VARIABLES */

// Interface to the ADC converter and the display
HX711 scale(A1, A2); // MISO, SCK
ScaleDisplay display(A0, A2, A4); // MOSI, SCK, CS

// Parameters for averaging
int num_read; // Number of values read within threshold
float sum_read; // Sum of values read within threshold
long first_read_time; // Time of first read within threshold

// Standard Arduino setup function
void setup() {
#ifdef ENABLE_TARE_PIN
  pinMode(TARE_PIN, INPUT_PULLUP);
#endif

  pinMode(POWER_PIN, OUTPUT);
  digitalWrite(POWER_PIN, HIGH);
  reset_scale("ON");
}

// Standard Arduino loop function
void loop() {
  // If no/short presses, handle readings, else zero the scale
  long press_time = get_button_time();
  if (press_time < BUTTON_PRESS_DELAY) {
    handle_scale_readings();
  } else {
    reset_scale("RST");
  }
}

// Function that tells us how long the button is being preseed (if applicable)
long get_button_time() {
#ifdef ENABLE_TARE_PIN
  long start = millis();
  // Break out early if possible
  while (digitalRead(TARE_PIN) == LOW && (millis() - start) <= BUTTON_PRESS_DELAY) {}
  return millis() - start;
#else
  return 0;
#endif
}

// Function that reads and displays scale readings
void handle_scale_readings() {
  // If cannot make reading from scale, timeout, display error, and turn off
  long start = millis();
  while (!scale.is_ready() && (millis() - start) < TIMEOUT_DELAY) {}
  if (!scale.is_ready()) {
    display.flash_message("ERR");
    digitalWrite(POWER_PIN, LOW);
  }

  float cur_read = scale.get_units(AV_NUM_READS);

  // If read is within average as difference (could also do as percentage)
  if (abs(sum_read / num_read - cur_read) <= THRESHOLD) {
    num_read += 1;
    sum_read += cur_read;

    // If has been stable for long enough, flash the value and turn off
    if ((millis() - first_read_time) >= STABLE_TIME_MS) {
      display.flash_value(cur_read);
      digitalWrite(POWER_PIN, LOW);
    }
  } else {
    // Not stable. Reset
    num_read = 1;
    sum_read = cur_read;
    first_read_time = millis();
  }

  // Because HX711 is not proper SPI and it shares the CLK with the
  // display, we power it down before we display the value
  // Before powering it back on with small delay
  scale.power_down();
  display.display_value(cur_read);
  delay(HX711_POWER_UP_DELAY);
  scale.power_up();
}

// Function that zeroes the scale, flashing the message if needed
void reset_scale(const char* msg) {
  // Set the scaling factor and power down the scale (due to SPI conflict)
  scale.set_scale(SCALING);
  scale.power_down();

  // Display message if needed, otherwise have a small delay to ensure
  // scale can power-up correctly
  if (msg) {
    display.reset();
    display.flash_message(msg);
  } else {
    delay(HX711_POWER_UP_DELAY);
  }

  // Power up, and zero-scale
  scale.power_up();
  scale.tare();

  // Reset stability measurements
  sum_read = 0;
  num_read = 1;
  first_read_time = millis();
}

Semoga tulisan ini tdk berguna, paling² tdk ada yg baca.

Sabtu, 23 Desember 2017

Polytron PMA 9300 review

Harga Rp500.000

Pengantar
Menurut pakar audio sound system (sistim tata suara) " yg bernama audiophile (penikmat audio) mengatakan bahwasanya "Sistim suara yg bagus akan mereproduksi suara sama persis atau semirip mungkin dari sumber suara aslinya".

Polytron PMA 9300 terdiri dr 1sub woofer (sentral) ukuran speaker blm sy ketahui dan 2speaker depan (utama R/L) ukuran 3inchi tdk ada tweeter.

Utk obyektifitas penilaian sy memakai perangkat keras dan lunak sbb:
1. HP android
2. Aplikasi "Audio Test Tone Generator" dari "Digital Antics".
Aplikasi ini berguna utk mengetahui lebar respon frekuensi yg bisa disuarakan dari speaker dan direspon diperdegarkan oleh telinga (saya). Tes pakai pemutar musik bawaan HP (klo pakai aplikasi pikak ke 3 "LISTENit" suara mid range jadi sember) via bluetooth pada volume 10 dan hasilnya cakupannya sangat luas rinciannya sbb:
2a. 25Hz (box sub woofer bergetar suara msh bs didengar namun lirih) dan 12.5Khz bisa didengar namun lirih.
2b. 30Hz terdengar 2x lbh keras dr 25Hz. 16KHz tdk terdengar.
3. Headphone merek HK (kw2) ini gunanya utk nembadingkan respon suara yg dihasilkan antara headphone dan speaker dan hasilnya pada headphone sbb:
3a. 25Hz tdk bisa didengar, 30Hz baru terdengar lirih, 8Hz tdk bisa didengar dan 6Khz bisa didengar lirih.
3b. Headphone punya kelebihan suara yg diperdengarkan lbh detil.
4. Tes: Audio Video dr youtube https://youtu.be/zhqbXjQ8IP0
Gunanya utk mengetahui efek suara yg bisa direproduksi oleh speaker dan hasilnya JOSS!!!.
4a. Tes: Audio Video https://youtu.be/LKaXY4IdZ40
Nyessss....
4b. Tes: Audio Video dr youtube https://youtu.be/7ycEXkNQlWs
Dan hasilnya mantap...
5. Aplikasi "Sounds Tools (SPL Sound Meter)" dari "Peco Stanoev".
Ini gunanya utk mengetahui (mengukur) penguatan suara namun blm sy coba.

Harapan
Kedepannya Polytron™ sudi memproduksi perangkat sound system yg diperuntukan utk lapangan atau penyapa umum (PA = public address).

Penutup
Semoga tulisan ini tdk berguna.
Paling² tdk ada komentar krn tdk ada pengunjung.

Sabtu, 04 November 2017

OpenWrt nembak @wifi.id

Sasaran tembak: @wifi.id tipe outdoor.

Alat2 yg sy gunakan sbb:
1. Tp Link TL-MR3420 v2 OS OpenWrt Chaos Chalmer v15.05.1 sbg client (rx).
2. 1set POE pasif dan 2bh adaptor.
3. eLink ER-30 sbg pemancar (tx).
4. Kabel LAN dgn panjang: 5meter.
5. Voucher @wifi.id 5000ribu Rupiah.
6. Hp android utk seting dll.

Uji coba ini sy lakukan ada di dua tempat masing2 sbb:
1. Di jln Untung Suropati dekat kantor Polres Purwodadi Grobogan.
Hasil scan dpt kekuatan sinyal 45%.
Jarak tembak: Belum diketahui, perkiraan sangat dkt krn sinyalnya bs ditangkap oleh handphone.
Sdh dpt IP dr @wifi.id namun sulit masuk ke login-page nya. Gagal!!! Akhirnya pindah tempat.
2. Di jln R Suprapto di warung makan dan minum CeJeDeWe Purwodadi Grobogan. Berhasil!!!
Jarak tembak: 5meter (hehehe... sangat2 jauh) dpt sinyal 87%.
Hasil speed test tertinggi UL: 12,45Mbps, DL: 10,29Mbps.

Penutup
Semoga tulisan ini tdk berguna sama sekali.
Paling2 tdk ada komentar krn tdk ada yg baca.
 

Postingan Populer dlm 7 hari terakhir