1āĨ¤ āĻā§āĻŽāĻŋāĻāĻž
āĻāĻā§āĻ¨ā§āĻĄāĻžāĻ¯āĻŧ āĻĻā§āĻāĻŋ āĻ āĻ°ā§āĻ§-āĻ¸ā§āĻ¤ā§ āĻā§āĻ¨āĻž āĻ¸ā§āĻā§āĻ°ā§āĻ¨ āĻā§āĻ āĻ¸āĻš nrf52832 āĻŽāĻžāĻāĻā§āĻ°ā§āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛āĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻāĻŋāĻ˛āĨ¤
āĻāĻžāĻāĻāĻŋ āĻ¸āĻšāĻ āĻāĻŋāĻ˛ āĻ¨āĻž, āĻāĻžāĻ°āĻŖ āĻāĻŽāĻŋ āĻā§āĻ¨āĻ āĻŦā§āĻ§āĻāĻŽā§āĻ¯ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻ āĻāĻžāĻŦā§āĻ° āĻŽā§āĻā§āĻŽā§āĻāĻŋ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽāĨ¤ āĻ¨āĻ°ā§āĻĄāĻŋāĻ āĻ¸ā§āĻŽāĻŋāĻāĻ¨ā§āĻĄāĻžāĻā§āĻāĻ° āĻĨā§āĻā§ SDK-āĻ¤ā§ "āĻŽāĻ¨ā§āĻĻā§āĻ° āĻŽā§āĻ˛" āĻĨāĻžāĻāĻžāĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻž āĻŦā§āĻļāĻŋ - āĻ§ā§āĻ°ā§āĻŦāĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻāĻĒāĻĄā§āĻ, āĻāĻŋāĻā§ āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻāĻŦāĻ āĻŦāĻŋāĻā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋāĻāĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĨ¤ āĻāĻŽāĻžāĻā§ āĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻĨā§āĻā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻāĻŽāĻŋ āĻŽāĻ¨ā§ āĻāĻ°āĻŋ āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻŋāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻŋ āĻŦā§āĻļ āĻĒā§āĻ°āĻžāĻ¸āĻā§āĻāĻŋāĻ āĻ¯ā§ āĻāĻ āĻāĻŋāĻĒā§ āĻāĻāĻāĻŋ BLE āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻāĻŦāĻ āĻļāĻā§āĻ¤āĻŋ āĻ¸āĻā§āĻāĻ¯āĻŧ āĻŽā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ "āĻā§āĻĄāĻŋāĻ" āĻāĻ° āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¸ā§āĻ āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ āĻ¤āĻŦā§ āĻāĻŽāĻŋ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤ āĻ āĻāĻļā§ āĻā§āĻŦ āĻāĻā§āĻ°ā§ āĻ¯āĻžāĻŦ āĻ¨āĻž, āĻāĻžāĻ°āĻŖ āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻ āĻ¨ā§āĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
2. āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž
āĻ˛ā§āĻšāĻž:
- āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĢā§āĻ°ā§āĻ āĻĢā§āĻĻāĻžāĻ° nRF52 āĻŦā§āĻ˛ā§āĻĢā§āĻ°ā§āĻ āĻāĻ˛āĻ (āĻšāĻžāĻ¤ā§ āĻā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛)
- HX711 ADC
- āĻāĻžāĻāĻ¨āĻŋāĻ āĻ¸ā§āĻā§āĻ°ā§āĻ¨ āĻā§āĻ 2 āĻĒāĻŋāĻ¸āĻŋāĨ¤ (50x2 āĻā§āĻāĻŋ)
- āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ° ST-LINK V2
āĻ¸āĻĢāĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°:
- IDE VSCODE
- NRF SDK 16
- OpenOCD
- āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ° 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 āĻ āĻ°āĻ¯āĻŧā§āĻā§
āĻ¤āĻĨā§āĻ¯āĻ
āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻ¨ā§āĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻā§ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ, āĻāĻŽāĻŋ āĻāĻļāĻž āĻāĻ°āĻŋ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻšāĻŦā§ āĻāĻŦāĻ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻŽā§āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŽāĻŋāĻ¯āĻŧā§ āĻĻā§āĻŦā§āĨ¤ āĻāĻŽāĻŋ āĻŦāĻ˛āĻ¤ā§ āĻāĻžāĻ āĻ¯ā§ āĻ¨āĻ°ā§āĻĄāĻŋāĻ āĻ¤āĻžāĻ° āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¯ā§ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤āĻž āĻļāĻā§āĻ¤āĻŋ āĻĻāĻā§āĻˇāĻ¤āĻžāĻ° āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§ āĻŦā§āĻļ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧāĨ¤
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯
āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻāĻāĻ¨āĻ āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¤āĻžāĻ āĻ¯āĻĻāĻŋ āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻŋ āĻāĻā§āĻ°āĻšā§āĻ° āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻŽāĻŋ āĻāĻāĻ¨ āĻ¸ā§āĻ¨ā§āĻ¸āĻ°āĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ¯āĻžāĻ˛āĻŋāĻŦā§āĻ°ā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ BLE āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦāĨ¤
āĻāĻĒāĻāĻ°āĻŖ
āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻā§āĻĄ -
āĻāĻāĻ°ā§āĻāĻŋāĻ¤ā§ HX711-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻžāĻļāĻŋāĻ -
āĻ¸ā§āĻā§āĻ°ā§āĻ¨ āĻā§āĻā§āĻ° āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž
āĻāĻ¤ā§āĻ¸: www.habr.com