HX711 ADC-เดฏเต† NRF52832-เดฒเต‡เด•เตเด•เต เดŽเด™เตเด™เดจเต† เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚

1. เด†เดฎเตเด–เด‚

เดฐเดฃเตเดŸเต เดนเดพเดซเต เดฌเตเดฐเดฟเดกเตเดœเต เดšเตˆเดจเต€เดธเต เดธเตโ€ŒเดŸเตเดฐเต†เดฏเดฟเตป เด—เต‡เดœเตเด•เดณเตเดณเตเดณ nrf52832 เดฎเตˆเด•เตเดฐเต‹เด•เตบเดŸเตเดฐเต‹เดณเดฑเดฟเดจเดพเดฏเดฟ เด’เดฐเต เด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเด•เตเด•เต‡เดทเตป เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฏเดฟเดฐเตเดจเตเดจเต เด…เดœเดฃเตเดŸเดฏเดฟเตฝ.

เดฌเตเดฆเตเดงเดฟเดชเดฐเดฎเดพเดฏ เดตเดฟเดตเดฐเด™เตเด™เดณเตเดŸเต† เด…เดญเดพเดตเด‚ เดจเต‡เดฐเดฟเดŸเตเดŸเดคเดฟเดจเดพเตฝ, เดšเตเดฎเดคเดฒ เดŽเดณเตเดชเตเดชเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดฒเตเดฒ. เดจเต‹เตผเดกเดฟเด•เต เด…เตผเดฆเตเดงเดšเดพเดฒเด•เดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดคเดจเตเดจเต† "เดคเดฟเดจเตเดฎเดฏเตเดŸเต† เดฑเต‚เดŸเตเดŸเต" SDK-เดฏเดฟเตฝ เด†เดฏเดฟเดฐเดฟเด•เตเด•เดพเตป เดธเดพเดงเตเดฏเดคเดฏเตเดฃเตเดŸเต - เดจเดฟเดฐเดจเตเดคเดฐเดฎเดพเดฏ เดชเดคเดฟเดชเตเดชเต เด…เดชเตเดกเต‡เดฑเตเดฑเตเด•เตพ, เดšเดฟเดฒ เด†เดตเตผเดคเตเดคเดจเด™เตเด™เตพ, เด†เดถเดฏเด•เตเด•เตเดดเดชเตเดชเดฎเตเดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚. เดŽเดจเดฟเด•เตเด•เต เด†เดฆเตเดฏเด‚ เดฎเตเดคเตฝ เดŽเดฒเตเดฒเดพเด‚ เดŽเดดเตเดคเต‡เดฃเตเดŸเดฟ เดตเดจเตเดจเต.

เดˆ เดšเดฟเดชเตเดชเดฟเดจเต เด’เดฐเต BLE เดธเตเดฑเตเดฑเดพเด•เตเด•เตเด‚ เดŠเตผเดœเตเดœ เดธเด‚เดฐเด•เตเดทเดฃ เดฎเต‹เดกเดฟเดจเดพเดฏเดฟ "เด—เตเดกเต€เดธเต" เด’เดฐเต เดฎเตเดดเตเดตเตป เดธเต†เดฑเตเดฑเตเด‚ เด‰เดฃเตเดŸเต†เดจเตเดจ เดตเดธเตเดคเตเดคเดฏเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดˆ เดตเดฟเดทเดฏเด‚ เดตเดณเดฐเต† เดชเตเดฐเดธเด•เตเดคเดฎเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เด•เดฐเตเดคเตเดจเตเดจเต. เดŽเดจเตเดจเดพเตฝ เดˆ เดตเดฟเดทเดฏเดคเตเดคเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เดฒเต‡เด–เดจเด™เตเด™เตพ เดŽเดดเตเดคเดฟเดฏเดคเดฟเดจเดพเตฝ เดžเดพเตป เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดญเดพเด—เดคเตเดคเต‡เด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เด†เดดเดคเตเดคเดฟเตฝ เดชเต‹เด•เดฟเดฒเตเดฒ.

2. เดชเดฆเตเดงเดคเดฟเดฏเตเดŸเต† เดตเดฟเดตเดฐเดฃเด‚

HX711 ADC-เดฏเต† NRF52832-เดฒเต‡เด•เตเด•เต เดŽเด™เตเด™เดจเต† เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚

เด‡เดฐเตเดฎเตเดชเต:

  • เด…เดกเดพเดซเตเดฐเต‚เดŸเตเดŸเต เดซเต†เดคเตผ nRF52 เดฌเตเดฒเต‚เดซเตเดฐเต‚เดŸเตเดŸเต LE (เด•เตˆเดฏเดฟเตฝ เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเดšเตเดšเดคเต)
  • ADC HX711
  • เดšเตˆเดจเต€เดธเต เดธเตโ€ŒเดŸเตเดฐเต†เดฏเดฟเตป เด—เต‡เดœเตเด•เตพ 2 เดชเต€เดธเตเด•เตพ. (50x2 เด•เดฟ.เด—เตเดฐเดพเด‚)
  • เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตผ ST-LINK V2

เดธเต‹เดซเตเดฑเตเดฑเตเดตเต†เดฏเตผ:

  • IDE VSCODE
  • NRF SDK 16
  • เด“เดชเตเดชเตบ เด’เดธเดฟเดกเดฟ
  • เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตผ ST-LINK V2

เดŽเดฒเตเดฒเดพเด‚ เด’เดฐเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดฒเดพเดฃเต, เดจเดฟเด™เตเด™เตพ Makefile เดฎเดพเดฑเตเดฑเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต (เดจเดฟเด™เตเด™เดณเตเดŸเต† 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 เดฎเตŠเดกเตเดฏเต‚เตพ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด’เดฐเต เดคเดพเดฐเดคเดฎเตเดฏ เด‡เดตเดจเตเดฑเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ 10 ฮผs เดฆเตˆเตผเด˜เตเดฏเดฎเตเดณเตเดณ เดชเตพเดธเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต PD_SCL เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เดณเตเดŸเต† เดŸเตˆเดฎเตผ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ 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 เดธเต†เด•เตเด•เดจเตเดฑเต เด‡เดŸเดตเต‡เดณเดฏเตเดณเตเดณ เด‡เดตเดจเตเดฑเตเด•เตพ เดžเด™เตเด™เตพ เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต (เด‡เดคเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเดฟเดตเต‡เดšเดจเดพเดงเดฟเด•เดพเดฐเดคเตเดคเดฟเดฒเดพเดฃเต) เด•เต‚เดŸเดพเดคเต† DOUT เดฒเตˆเดจเดฟเตฝ เดคเดŸเดธเตเดธเดฎเตเดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจ เดนเดพเตปเดกเตโ€Œเดฒเดฑเดฟเตฝ HX711 เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด’เดฐเต เดชเต‹เดฏเดฟเดจเตเดฑเต เด•เต‚เดŸเดฟเดฏเตเดฃเตเดŸเต, เดฒเต‹เด—เตเด•เตพ UART เดตเดดเดฟ เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เดฌเต‹เดกเต เดจเดฟเดฐเด•เตเด•เต 115200, TX - 6 เดชเดฟเตปเดธเต, RX - 8 เดชเดฟเตปเดธเต) เดŽเดฒเตเดฒเดพ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เดณเตเด‚ sdk_config.h-เดฒเดพเดฃเต.

HX711 ADC-เดฏเต† NRF52832-เดฒเต‡เด•เตเด•เต เดŽเด™เตเด™เดจเต† เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚

เด•เดฃเตเดŸเต†เดคเตเดคเดฒเตเด•เตพ

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดถเตเดฐเดฆเตเดงเดฏเตเด•เตเด•เต เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเด‚ เดจเดจเตเดฆเดฟ, เดˆ เดฒเต‡เด–เดจเด‚ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเด•เตเดฎเต†เดจเตเดจเตเด‚ เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผเด•เตเด•เต เดชเดฐเดฟเดนเดพเดฐเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดตเดฟเดฒเดชเตเดชเต†เดŸเตเดŸ เดธเดฎเดฏเด‚ เด•เตเดฑเดฏเตเด•เตเด•เตเดฎเต†เดจเตเดจเตเด‚ เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต. เดŠเตผเดœเตเดœ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดคเดฏเตเดŸเต† เดตเต€เด•เตเดทเดฃเด•เต‹เดฃเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต‹เตผเดกเดฟเด•เต เด…เดคเดฟเดจเตเดฑเต† เดชเตเดฒเดพเดฑเตเดฑเตเดซเต‹เดฎเตเด•เดณเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดธเดฎเต€เดชเดจเด‚ เดตเดณเดฐเต† เดฐเดธเด•เดฐเดฎเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เดชเดฑเดฏเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเดฟ.เดŽเดธเต

เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด‡เดชเตเดชเต‹เดดเตเด‚ เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดฒเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ เดˆ เดตเดฟเดทเดฏเด‚ เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดŸเตเดคเตเดค เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดญเดพเดฐเด‚ เดธเต†เตปเดธเดฑเตเด•เตพ เด•เดพเดฒเดฟเดฌเตเดฐเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ BLE เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เดตเดฟเดตเดฐเดฟเด•เตเด•เดพเตป เดžเดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเด‚.

เดตเดธเตเดคเตเด•เตเด•เตพ

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•