HX711 ADC เจจเฉ‚เฉฐ NRF52832 เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ

1. เจœเจพเจฃ เจชเจ›เจพเจฃ

เจเจœเฉฐเจกเฉ‡ 'เจคเฉ‡ เจฆเฉ‹ เจ…เฉฑเจง-เจชเฉเจฒ เจšเฉ€เจจเฉ€ เจคเจฃเจพเจ… เจ—เฉ‡เจœเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ nrf52832 เจฎเจพเจˆเจ•เฉเจฐเฉ‹เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจฒเจˆ เจ‡เฉฑเจ• เจธเฉฐเจšเจพเจฐ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจฆเจพ เจ•เฉฐเจฎ เจธเฉ€เฅค

เจ‡เจน เจ•เฉฐเจฎ เจ†เจธเจพเจจ เจจเจนเฉ€เจ‚ เจธเฉ€, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฎเฉˆเจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจฎเจเจฆเจพเจฐ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเฉ€ เจ˜เจพเจŸ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจ•เจฐเจจเจพ เจชเจฟเจ† เจธเฉ€. เจ‡เจน เจตเจงเฉ‡เจฐเฉ‡ เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉˆ เจ•เจฟ "เจฌเฉเจฐเจพเจˆ เจฆเฉ€ เจœเฉœเฉเจน" เจจเฉ‹เจฐเจกเจฟเจ• เจธเฉˆเจฎเฉ€เจ•เฉฐเจกเจ•เจŸเจฐ เจคเฉ‹เจ‚ เจนเฉ€ SDK เจตเจฟเฉฑเจš เจนเฉˆ - เจจเจฟเจฐเฉฐเจคเจฐ เจธเฉฐเจธเจ•เจฐเจฃ เจ…เจชเจกเฉ‡เจŸเจธ, เจ•เฉเจ เจฐเจฟเจกเฉฐเจกเฉˆเจ‚เจธเฉ€ เจ…เจคเฉ‡ เจ‰เจฒเจเจฃ เจตเจพเจฒเฉ€ เจ•เจพเจฐเจœเจธเจผเฉ€เจฒเจคเจพเฅค เจฎเฉˆเจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚ เจคเฉ‹เจ‚ เจธเจญ เจ•เฉเจ เจฒเจฟเจ–เจฃเจพ เจชเจฟเจ†.

เจฎเฉˆเจจเฉ‚เฉฐ เจฒเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจตเจฟเจธเจผเจพ เจ‡เจธ เจคเฉฑเจฅ เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ เจ•เจพเจซเจผเฉ€ เจขเฉเจ•เจตเจพเจ‚ เจนเฉˆ เจ•เจฟ เจ‡เจธ เจšเจฟเฉฑเจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ• BLE เจธเจŸเฉˆเจ• เจนเฉˆ เจ…เจคเฉ‡ เจŠเจฐเจœเจพ เจฌเจšเจพเจ‰เจฃ เจฎเฉ‹เจก เจฒเจˆ "เจ—เฉเจกเฉ€เจœเจผ" เจฆเจพ เจชเฉ‚เจฐเจพ เจธเฉˆเฉฑเจŸ เจนเฉˆเฅค เจชเจฐ เจฎเฉˆเจ‚ เจคเจ•เจจเฉ€เจ•เฉ€ เจนเจฟเฉฑเจธเฉ‡ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจกเฉ‚เฉฐเจ˜เจพเจˆ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจœเจพเจตเจพเจ‚เจ—เจพ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจธ เจตเจฟเจธเจผเฉ‡ 'เจคเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจฒเฉ‡เจ– เจฒเจฟเจ–เฉ‡ เจ—เจ เจนเจจเฅค

2. เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเจพ เจตเฉ‡เจฐเจตเจพ

HX711 ADC เจจเฉ‚เฉฐ NRF52832 เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ

เจฒเฉ‹เจนเจพ:

  • เจ…เจกเจพเจซเจฐเฉ‚เจŸ เจซเฉ‡เจฆเจฐ nRF52 เจฌเจฒเฉ‚เจซเจฐเฉ‚เจŸ LE (เจนเฉฑเจฅ เจตเจฟเฉฑเจš เจ•เฉ€ เจนเฉ‹เจ‡เจ†)
  • HX711 ADC
  • เจšเฉ€เจจเฉ€ เจธเจŸเฉเจฐเฉ‡เจจ เจ—เฉ‡เจœ 2 เจชเฉ€.เจธเฉ€. (50x2 เจ•เจฟเจฒเฉ‹เจ—เฉเจฐเจพเจฎ)
  • เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐ ST-LINK V2

เจธเจพเฉฑเจซเจŸเจตเฉ‡เจ…เจฐ:

  • IDE VSCODE
  • NRF SDK 16
  • เจ“เจชเจจเจ“เจธเฉ€เจกเฉ€
  • เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐ ST-LINK V2

เจธเจญ เจ•เฉเจ เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš เจนเฉˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจฎเฉ‡เจ•เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจŸเจตเฉ€เจ• เจ•เจฐเจจเจพ เจนเฉ‹เจตเฉ‡เจ—เจพ (เจคเฉเจนเจพเจกเฉ‡ SDK เจฆเจพ เจธเจฅเจพเจจ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเฉ‹)เฅค

3. เจ•เฉ‹เจก เจฆเจพ เจตเจฐเจฃเจจ

เจ…เจธเฉ€เจ‚ GPIOTE เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจพเจฐเจœเจพเจ‚ เจ…เจคเฉ‡ เจ‡เจตเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ‡ เจฌเจพเจˆเจกเจฟเฉฐเจ— เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡ เจชเฉˆเจฐเฉ€เจซเจฟเจฐเจฒ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจจเจพเจฒ เจนเฉ€ PPI เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจฆเฉ€ เจญเจพเจ—เฉ€เจฆเจพเจฐเฉ€ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจ‡เฉฑเจ• เจชเฉˆเจฐเฉ€เจซเจฟเจฐเจฒ เจคเฉ‹เจ‚ เจฆเฉ‚เจœเฉ‡ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจจ เจฒเจˆเฅค

ret_code_t err_code;
   err_code = nrf_drv_gpiote_out_init(PD_SCK, &config);//ะฝะฐัั‚ั€ะฐะตะฒะฐะตะผ ะฝะฐ ะฒั‹ั…ะพะด
   nrf_drv_gpiote_out_config_t config = GPIOTE_CONFIG_OUT_TASK_TOGGLE(false);//ะฑัƒะดะตะผ ะฟะตั€ะตะดะตั€ะณะธะฒะฐั‚ัŒ ะฟะธะฝ ะดะปั ะธะผะฟัƒะปัŒัะฐ
   err_code = nrf_drv_gpiote_out_init(PD_SCK, &config);//ะฝะฐัั‚ั€ะฐะตะฒะฐะตะผ ะฝะฐ ะฒั‹ั…ะพะด

เจ…เจธเฉ€เจ‚ 10 ฮผs เจฆเฉ€ เจฎเจฟเจ†เจฆ เจฆเฉ‡ เจจเจพเจฒ เจฆเจพเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉˆเจฆเจพ เจ•เจฐเจจ เจฒเจˆ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฒเจˆ PD_SCL เจธเจฎเจ•เจพเจฒเฉ€ เจฒเจพเจˆเจจ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

   nrf_drv_gpiote_in_config_t  gpiote_config = GPIOTE_CONFIG_IN_SENSE_HITOLO(false);// ะฟะตั€ะตั…ะพะด ัƒั€ะพะฒะฝั ั ะฒั‹ัะพะบะพะณะพ ะฝะฐ ะฝะธะทะบะธะน
   nrf_gpio_cfg_input(DOUT, NRF_GPIO_PIN_NOPULL);// ะฝะฐ ะฒั…ะพะด ะฑะตะท ะฟะพะดั‚ัะถะบะธ
   err_code = nrf_drv_gpiote_in_init(DOUT, &gpiote_config, gpiote_evt_handler); 

static void gpiote_evt_handler(nrf_drv_gpiote_pin_t pin, nrf_gpiote_polarity_t action)
{
    nrf_drv_gpiote_in_event_disable(DOUT);//ะพั‚ะบะปัŽั‡ะฐะตะผ ะฟั€ะตั€ั‹ะฒะฐะฝะธะต
    nrf_drv_timer_enable(&m_timer0);//ะฒะบะปัŽั‡ะฐะตะผ ั‚ะฐะนะผะตั€
}
 

เจ…เจธเฉ€เจ‚ HX711 เจฆเฉ€ เจคเจฟเจ†เจฐเฉ€ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจจ เจฒเจˆ DOUT เจกเฉ‡เจŸเจพ เจฒเจพเจˆเจจ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚; เจœเฉ‡เจ•เจฐ เจ•เฉ‹เจˆ เจจเฉ€เจตเจพเจ‚ เจชเฉฑเจงเจฐ เจนเฉˆ, เจคเจพเจ‚ เจ‡เฉฑเจ• เจนเฉˆเจ‚เจกเจฒเจฐ เจšเจพเจฒเฉ‚ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจฐเฉเจ•เจพเจตเจŸ เจจเฉ‚เฉฐ เจ…เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ PD_SCL เจ†เจ‰เจŸเจชเฉเฉฑเจŸ 'เจคเฉ‡ เจ•เจฒเจพเจ• เจชเจฒเจธ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจŸเจพเจˆเจฎเจฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

 err_code = nrf_drv_ppi_channel_alloc(&m_ppi_channel1);
   APP_ERROR_CHECK(err_code);
   err_code = nrf_drv_ppi_channel_assign(m_ppi_channel1,                                         nrf_drv_timer_event_address_get(&m_timer0, NRF_TIMER_EVENT_COMPARE0),                                           nrf_drv_gpiote_out_task_addr_get(PD_SCK));// ะฟะพะดะบะปัŽั‡ะฐะตะผ ั‚ะฐะนะผะตั€ ะบ ะฒั‹ั…ะพะดัƒ
   APP_ERROR_CHECK(err_code);
   err_code = nrf_drv_ppi_channel_enable(m_ppi_channel1);// ะฒะบะปัŽั‡ะฐะตะผ ะบะฐะฝะฐะป
   APP_ERROR_CHECK(err_code);
   nrf_drv_gpiote_out_task_enable(PD_SCK); 

// gpiote เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเฉ‹

เจ‰เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ…เจธเฉ€เจ‚ PPI เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ†เจชเจฃเฉ‡ เจŸเจพเจˆเจฎเจฐ เจจเฉ‚เฉฐ PD_SCL เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจจเจพเจฒ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจคเจพเจ‚ เจ•เจฟ เจœเจฆเฉ‹เจ‚ เจ•เฉ‹เจˆ เจคเฉเจฒเจจเจพเจคเจฎเจ• เจ˜เจŸเจจเจพ เจตเจพเจชเจฐเจฆเฉ€ เจนเฉˆ เจคเจพเจ‚ 10 ฮผs เจฆเฉ€ เจฎเจฟเจ†เจฆ เจฆเฉ‡ เจจเจพเจฒ เจฆเจพเจฒเจพเจ‚ เจชเฉˆเจฆเจพ เจ•เจฐเจจ เจฒเจˆ, เจ…เจคเฉ‡ GPIOTE เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจตเฉ€ เจšเจพเจฒเฉ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เฉ‡เฅค


nrf_drv_timer_config_t timer_cfg = NRF_DRV_TIMER_DEFAULT_CONFIG;// ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ
   timer_cfg.frequency = NRF_TIMER_FREQ_1MHz;// ั‚ะฐะบั‚ะธั€ัƒะตะผ ะฝะฐ ั‡ะฐัั‚ะพั‚ะต 1ะœะณั†
   ret_code_t err_code = nrf_drv_timer_init(&m_timer0, &timer_cfg, timer0_event_handler);
   APP_ERROR_CHECK(err_code);
   nrf_drv_timer_extended_compare(&m_timer0,
                                  NRF_TIMER_CC_CHANNEL0,
                                  nrf_drv_timer_us_to_ticks(&m_timer0,
                                                            10),
                                  NRF_TIMER_SHORT_COMPARE0_CLEAR_MASK,
                                  true);// ัั€ะฐะฑะฐั‚ั‹ะฒะฐะตั‚ ะฟะพ ัั€ะฐะฒะฝะตะฝะธัŽ

เจ…เจธเฉ€เจ‚ เจœเจผเฉ€เจฐเฉ‹ เจŸเจพเจˆเจฎเจฐ เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจนเฉˆเจ‚เจกเจฒเจฐ เจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

  if(m_counter%2 != 0 && m_counter<=48){
       buffer <<= 1;// ะฟะตั€ะตะผะตะฝะฝะฐั ัั‡ะธั‚ะฐะฝะฝั‹ั… ะดะฐะฝั‹ั…
        c_counter++;// ัั‡ะตั‚ั‡ะธะบ ะฟะพะปะพะถะธั‚ะตะปัŒะฝั‹ั…  ะธะผะฟัƒะปัŒัะพะฒ
           if(nrf_gpio_pin_read(DOUT))buffer++;//ัั‡ะธั‚ั‹ะฒะฐะตะผ ัะพัั‚ะพัะฝะธะต ะฒั…ะพะดะฐ
   }

เจธเจญ เจคเฉ‹เจ‚ เจฆเจฟเจฒเจšเจธเจช เจšเฉ€เจœเจผ เจŸเจพเจˆเจฎเจฐ เจนเฉˆเจ‚เจกเจฒเจฐ เจตเจฟเฉฑเจš เจตเจพเจชเจฐเจฆเฉ€ เจนเฉˆ. เจชเจฒเจธ เจฆเฉ€ เจฎเจฟเจ†เจฆ 20 ฮผs เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจ…เจœเฉ€เจฌ เจฆเจพเจฒเจพเจ‚ (เจตเจง เจฐเจนเฉ‡ เจ•เจฟเจจเจพเจฐเฉ‡ เจฆเฉ‡ เจจเจพเจฒ) เจตเจฟเฉฑเจš เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจฌเจธเจผเจฐเจคเฉ‡ เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เจฟเจ† 24 เจคเฉ‹เจ‚ เจตเฉฑเจง เจจเจพ เจนเฉ‹เจตเฉ‡, เจ…เจคเฉ‡ เจ‡เฉฑเจฅเฉ‡ 48 เจ˜เจŸเจจเจพเจตเจพเจ‚ เจนเจจเฅค เจนเจฐเฉ‡เจ• เจ…เจœเฉ€เจฌ เจ˜เจŸเจจเจพ เจฒเจˆ, DOUT เจชเฉœเฉเจนเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ

เจกเฉ‡เจŸเจพเจธเจผเฉ€เจŸ เจคเฉ‹เจ‚ เจ‡เจน เจชเจคเจพ เจšเฉฑเจฒเจฆเจพ เจนเฉˆ เจ•เจฟ เจฆเจพเจฒเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ 25 เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ 128 เจฆเฉ‡ เจฒเจพเจญ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเฉ€ เจนเฉˆ (เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจฎเฉˆเจ‚ 25 เจฆเจพเจฒเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจนเฉˆ), เจ‡เจน 50 เจŸเจพเจˆเจฎเจฐ เจ‡เจตเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ‡ เจฌเจฐเจพเจฌเจฐ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจกเฉ‡เจŸเจพ เจซเจฐเฉ‡เจฎ เจฆเฉ‡ เจ…เฉฐเจค เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ.

 ++m_counter;// ัั‡ะตั‚ั‡ะธะบ ัะพะฑั‹ั‚ะธะน
if(m_counter==50){
      nrf_drv_timer_disable(&m_timer0);// ะพั‚ะบะปัŽั‡ะฐะตะผ ั‚ะฐะนะผะตั€
       m_simple_timer_state = SIMPLE_TIMER_STATE_STOPPED;//
       buffer = buffer ^ 0x800000;
       hx711_stop();//jะพั‚ะบะปัŽั‡ะฐะตะผ hx711
       }
   

เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ…เจธเฉ€เจ‚ เจŸเจพเจˆเจฎเจฐ เจจเฉ‚เฉฐ เจฌเฉฐเจฆ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจกเฉ‡เจŸเจพ (เจกเฉ‡เจŸเจพเจธเจผเฉ€เจŸ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ) เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ HX711 เจจเฉ‚เฉฐ เจ˜เฉฑเจŸ เจชเจพเจตเจฐ เจ–เจชเจค เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฆเฉ‡ เจนเจพเจ‚เฅค


static void repeated_timer_handler(void * p_context)
{
   nrf_drv_gpiote_out_toggle(LED_2);
   if(m_simple_timer_state == SIMPLE_TIMER_STATE_STOPPED){
      	hx711_start();// ะฒะบะปัŽั‡ะฐะตะผ hx711
       nrf_drv_gpiote_out_toggle(LED_1);
       m_simple_timer_state = SIMPLE_TIMER_STATE_STARTED;
   }
  
}
/**@brief Create timers.
*/
static void create_timers()
{
   ret_code_t err_code;
 
   // Create timers
   err_code = app_timer_create(&m_repeated_timer_id,
                               APP_TIMER_MODE_REPEATED,
                               repeated_timer_handler);
   APP_ERROR_CHECK(err_code);
}

เจ…เจธเฉ€เจ‚ RTC เจŸเจพเจˆเจฎเจฐ เจคเฉ‹เจ‚ 10 เจธเจ•เจฟเฉฐเจŸ เจฆเฉ‡ เจ…เฉฐเจคเจฐเจพเจฒ เจจเจพเจฒ เจ‡เจตเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€ เจ‰เจฎเฉ€เจฆ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ (เจ‡เจน เจคเฉเจนเจพเจกเฉ€ เจฎเจฐเจœเจผเฉ€ เจ…เจจเฉเจธเจพเจฐ เจนเฉˆ) เจ…เจคเฉ‡ เจนเฉˆเจ‚เจกเจฒเจฐ เจตเจฟเฉฑเจš HX711 เจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจœเจฟเจธ เจจเจพเจฒ DOUT เจฒเจพเจˆเจจ 'เจคเฉ‡ เจฐเฉเจ•เจพเจตเจŸ เจ†เจ‰เจ‚เจฆเฉ€ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจฌเจฟเฉฐเจฆเฉ‚ เจนเฉˆ, เจฒเฉŒเจ—เจธ UART เจฆเฉเจ†เจฐเจพ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจนเจจ (เจฌเจพเจก เจฐเฉ‡เจŸ 115200, TX - 6 เจชเจฟเฉฐเจจ, RX - 8 เจชเจฟเฉฐเจจ) เจธเจพเจฐเฉ€เจ†เจ‚ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ sdk_config.h เจตเจฟเฉฑเจš เจนเจจ

HX711 ADC เจจเฉ‚เฉฐ NRF52832 เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ

เจธเจฟเฉฑเจŸเจพ

เจคเฉเจนเจพเจกเฉ‡ เจงเจฟเจ†เจจ เจฒเจˆ เจคเฉเจนเจพเจกเจพ เจธเจพเจฐเจฟเจ†เจ‚ เจฆเจพ เจงเฉฐเจจเจตเจพเจฆ, เจฎเฉˆเจจเฉ‚เฉฐ เจ‰เจฎเฉ€เจฆ เจนเฉˆ เจ•เจฟ เจ‡เจน เจฒเฉ‡เจ– เจฒเจพเจญเจฆเจพเจ‡เจ• เจนเฉ‹เจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจฒเจˆ เจนเฉฑเจฒ เจฒเฉฑเจญเจฃ เจฒเจˆ เจ•เฉ€เจฎเจคเฉ€ เจธเจฎเจพเจ‚ เจ˜เจŸเจพเจเจ—เจพเฅค เจฎเฉˆเจ‚ เจ‡เจน เจ•เจนเจฟเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจคเจ•เจจเฉ€เจ•เฉ€ เจชเจนเฉเฉฐเจš เจœเฉ‹ เจจเฉ‹เจฐเจกเจฟเจ• เจ†เจชเจฃเฉ‡ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎเจพเจ‚ เจตเจฟเฉฑเจš เจตเจฐเจคเจฆเจพ เจนเฉˆ เจŠเจฐเจœเจพ เจ•เฉเจธเจผเจฒเจคเจพ เจฆเฉ‡ เจฆเฉเจฐเจฟเจธเจผเจŸเฉ€เจ•เฉ‹เจฃ เจคเฉ‹เจ‚ เจ•เจพเจซเจผเฉ€ เจฆเจฟเจฒเจšเจธเจช เจนเฉˆ.

PS

เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ…เจœเฉ‡ เจตเฉ€ เจตเจฟเจ•เจพเจธ เจ…เจงเฉ€เจจ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจœเฉ‡เจ•เจฐ เจ‡เจน เจตเจฟเจธเจผเจพ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ…เจ—เจฒเฉ‡ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจฎเฉˆเจ‚ เจญเจพเจฐ เจธเฉˆเจ‚เจธเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉˆเจฒเฉ€เจฌเจฐเฉ‡เจŸ เจ•เจฐเจจ เจฆเฉ‡ เจจเจพเจฒ เจจเจพเจฒ BLE เจธเจŸเฉˆเจ• เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฒเจˆ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจพเจ‚เจ—เจพ.

เจธเจฎเฉฑเจ—เจฐเฉ€

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹