Holm

Members
  • Публикации

    21
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

О Holm

  • Звание
    Новенький

Информация

  • Город
    Kant

Электроника

  • Стаж в электронике
    3-5 лет
  • Сфера радиоэлектроники
    Микроконтроллеры,программирование,логика
  • Оборудование
    Имеется все
  1. OLED LCD 128x64 1.3

    Картинка просто на просто будет мала,эту строку U8G2_SSD1306_128X64_UNIVISION_F_HW_I2C u8g2(U8G2_R0); Замените на свою,под 1.3
  2. Приветствую! Собираю пульсоксиметр на MAX30100. Нашел на просторах интернета готовый код,но под STM32,но на винду хп драйвера не идут. Может кто-нибудь помочь переделать код под Ардуино Уно. Отблагодарю))
  3. Пульсоксиметр

    Просто может кто-нибудь поможет,элементарно не могу проверить датчик MAX30100 в "Монитор порта" ничего нет
  4. Пульсоксиметр

    Приветствую радиолюбители!Проблема такая,решил собрать пульсоксиметр,но т.к это моя первая работа на Arduino Nano,возникли трудности. Собираю по этой статье Единственное отличие у них стоит oled display 0.91 у меня 0.96. Не могу разобраться,с какой библиотекой работать u8g2lib или u8glib.Какой дисплей мне выбрать и тд. Ссылка на библиотеку MAX30100 клик #include <CircularBuffer.h> #include <MAX30100.h> #include <MAX30100_BeatDetector.h> #include <MAX30100_Filters.h> #include <MAX30100_PulseOximeter.h> #include <MAX30100_Registers.h> #include <MAX30100_SpO2Calculator.h> #include <U8g2lib.h> #include "MAX30100_PulseOximeter.h" #include <Wire.h> #define REPORTING_PERIOD_MS 500 U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0); // PulseOximeter is the higher level interface to the sensor // it offers: // * beat detection reporting // * heart rate calculation // * SpO2 (oxidation level) calculation PulseOximeter pox; const int numReadings=10; float filterweight=0.5; uint32_t tsLastReport = 0; uint32_t last_beat=0; int readIndex=0; int average_beat=0; int average_SpO2=0; bool calculation_complete=false; bool calculating=false; bool initialized=false; byte beat=0; // Callback (registered below) fired when a pulse is detected void onBeatDetected() { show_beat(); last_beat=millis(); } void show_beat() { u8g2.setFont(u8g2_font_cursor_tf); u8g2.setCursor(8,10); if (beat==0) { u8g2.print("_"); beat=1; } else { u8g2.print("^"); beat=0; } u8g2.sendBuffer(); } void initial_display() { if (not initialized) { u8g2.clearBuffer(); show_beat(); u8g2.setCursor(24,12); u8g2.setFont(u8g2_font_smart_patrol_nbp_tf); u8g2.print("Place finger"); u8g2.setCursor(0,30); u8g2.print("on the sensor"); u8g2.sendBuffer(); initialized=true; } } void display_calculating(int j) { if (not calculating) { u8g2.clearBuffer(); calculating=true; initialized=false; } show_beat(); u8g2.setCursor(24,12); u8g2.setFont(u8g2_font_smart_patrol_nbp_tf); u8g2.print("Measuring"); u8g2.setCursor(0,30); for (int i=0;i<=j;i++) { u8g2.print(". "); } u8g2.sendBuffer(); } void display_values() { u8g2.clearBuffer(); u8g2.setFont(u8g2_font_smart_patrol_nbp_tf); u8g2.setCursor(65,12); u8g2.print(average_beat); u8g2.print(" Bpm"); u8g2.setCursor(0,30); u8g2.print("SpO2 "); u8g2.setCursor(65,30); u8g2.print(average_SpO2); u8g2.print("%"); u8g2.sendBuffer(); } void calculate_average(int beat, int SpO2) { if (readIndex==numReadings) { calculation_complete=true; calculating=false; initialized=false; readIndex=0; display_values(); } if (not calculation_complete and beat>30 and beat<220 and SpO2>50) { average_beat = filterweight * (beat) + (1 - filterweight ) * average_beat; average_SpO2 = filterweight * (SpO2) + (1 - filterweight ) * average_SpO2; readIndex++; display_calculating(readIndex); } } void setup() { Serial.begin(115200); u8g2.begin(); pox.begin(); pox.setOnBeatDetectedCallback(onBeatDetected); initial_display(); } void loop() { // Make sure to call update as fast as possible pox.update(); if ((millis() - tsLastReport > REPORTING_PERIOD_MS) and (not calculation_complete)) { calculate_average(pox.getHeartRate(),pox.getSpO2()); tsLastReport = millis(); } if ((millis()-last_beat>10000)) { calculation_complete=false; average_beat=0; average_SpO2=0; initial_display(); } }
  5. Мультивибратор+Счетчик+Дешифратор

    Не особо понял,выходит ведь так: (2шт.)двоич.-десятич.,(2шт.)2х16 ,(2шт.)дешифратор и логика ведь нужна....
  6. Мультивибратор+Счетчик+Дешифратор

    Придется значит собирать всю эту красоту на восьми микросхемах Не думал что получится так объемно...
  7. Мультивибратор+Счетчик+Дешифратор

    На данный момент задача такова,собрать счетчик минимум до 63 (использовать любые микросхемы,не программируя).Бинарный код имел вид 1 2 4 8 16 32... и чтобы числа бинарного кода совпадали с числом на индикаторе,опять же не умножая высший разряд на 16 (не высвечивались буквы ABCDEF )... Спасибо
  8. Мультивибратор+Счетчик+Дешифратор

    Спасибо.Но все же заставляют делать на второй схеме ( было 1 2 4 8 16 и тд.) и опять же чтобы индикатор показывал верно (не умножая на 16). Может быть есть некие микросхемы дешифратора,которые будут все это преобразовывать?
  9. Мультивибратор+Счетчик+Дешифратор

    Извиняюсь еще раз) Пришел к выводу что буду ставить двоично-десятичный счетчик К155ИЕ6,его аналог в Протеусе SN74192 (74192). Подключаю светодиоды,после 9 он сразу перекидывает на 2 микросхему и загорается светодиод (16). Просто нужно чтобы число с индикатора совпадало с двоичным кодом) Заранее спасибо Counter.rar
  10. Мультивибратор+Счетчик+Дешифратор

    Ладно еще раз спасибо вам,осталось за малым нарисовать в S-L и вытравить.
  11. Мультивибратор+Счетчик+Дешифратор

    Не совсем понял,я жму и картинка на весь экран в хорошем качестве. Как подругому залить не понимаю)
  12. Мультивибратор+Счетчик+Дешифратор

    Получается я не смогу сделать,чтобы индикатор показывал как оно есть,не умножая? Могли бы сказать,какая ошибка была?Спасибо
  13. Мультивибратор+Счетчик+Дешифратор

    Смотрел по схеме,вроде бы подключение к счетчику(2) как и было,но сигнал уже есть.Намудрил значит я что-то,поэтому и не работала) А почему он так странно показывает?
  14. Мультивибратор+Счетчик+Дешифратор

    Ошибка сейчас такая,подключил дешифратор(2) он отстает от действительных значений,видно на скриншоте.
  15. Мультивибратор+Счетчик+Дешифратор

    Спасибо большое,вы лучший!