Датчик расстояния и OLED
Компоненты и расходные материалы
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 |
Приложения и онлайн-сервисы
![]() |
|
Об этом проекте

Как использовать OLED-экран
Вот мой предыдущий урок по этому поводу:
-
#includes
и#defines
перед запускомsetup ():
#include // нам нужны все эти неприятные библиотеки для OLED # include #include #include #define OLED_RESET 4 // это вывод сброса, IM НЕ ИСПОЛЬЗУЕТ дисплей ITAdafruit_SSD1306 (OLED_RESET);
- В
setup ()
функция:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // инициализируем с адресом I2C 0x3C (128x64) display.clearDisplay (); // очищаем отображение перед запуском
- В
loop ()
функция:
display.setCursor (22,20); // координаты x, y display.setTextSize (3); // размер текста display.setTextColor (WHITE); // если вы напишете ЧЕРНЫЙ, он стирает все display.println (distance); // выводим нашу переменную display.setCursor (85,20); // устанавливаем размер, выводим единицы измерения (см / дюйм) display.setTextSize (3); #ifdef CommonSenseMetricSystem // если есть # определить CommonSenseMetricSystem display.println ("cm"); // выводим "cm" в oled #endif #ifdef ImperialNonsenseSystem // если есть # define ImperialNonsenseSystem display.println ("in"); // вывод "в" в oled #endif display.display (); // вам нужно отобразить все эти данные delay (500); // ждем !, человеческая скорость display.clearDisplay (); // очистить дисплей черным
Как использовать ультразвуковой диапазон HC-SR04
Здесь у вас есть таблица данных, модуль HC отправляет пакет импульсов, а затем измеряет время, которое требуется ультразвуковому эхо, чтобы вернуться в исходное место.
- Сделайте импульс для триггера HC, HC выполнит пакетный импульс:
длительность, расстояние; // любимые нами переменные digitalWrite (trigPin, LOW); // ИМПУЛЬС ___ | --- | ___ delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW);
- PulseIn () - редко используемая функция, определяет длину шага высокого (__ ---- __) или низкого (----___---)
Мы используем #ifdef
для компиляции только тех частей, которые нам нужны.
duration =pulseIn (echoPin, HIGH); // #ifdef CommonSenseMetricSystem distance =(duration / 2) / 29.1; #endif #ifdef ImperialNonsenseSystem distance =(duration / 2) / 73.914; #endif
- И это для отладки, если ваш Oled не работает:
Serial.println (distance); // отладка
Код
- Измерение и отображение расстояния ультразвуком.
Ультразвуковое измерение расстояния и отображение Arduino
Основной код// КОД Хавьера Муньоса Саэса, 11.05.2016 вопросы на [email protected]#include#include #include #include #define CommonSenseMetricSystem // # define ImperialNonsenseSystem # define trigPin 13 # define echoPin 12 #define OLED_RESET 4Adafruit_SSD1306 display (OLED_RESET); void setup () {Serial.begin (9600); pinMode (trigPin, ВЫХОД); pinMode (echoPin, ВХОД); display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // инициализируем с адресом I2C 0x3C (128x64) display.clearDisplay ();} void loop () {long duration, distance; digitalWrite (trigPin, LOW); // ИМПУЛЬС ___ | --- | ___ delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duration =pulseIn (echoPin, HIGH); #ifdef CommonSenseMetricSystem distance =(duration / 2) / 29.1; #endif #ifdef ImperialNonsenseSystem distance =(duration / 2) / 73.914; #endif display.setCursor (22,20); // старый дисплей display.setTextSize (3); display.setTextColor (БЕЛЫЙ); display.println (расстояние); display.setCursor (85,20); display.setTextSize (3); #ifdef CommonSenseMetricSystem display.println ("см"); #endif #ifdef ImperialNonsenseSystem display.println ("in"); #endif display.display (); задержка (500); display.clearDisplay (); Serial.println (distance); // отладка}
Схема

Производственный процесс
- Как работает датчик расстояния и его применение
- Датчик Arduino - типы и приложения
- Датчик отпечатков пальцев Работа и приложения
- Датчик температуры Python и Raspberry Pi
- Датчик температуры и освещенности Raspberry Pi
- Управление датчиком и исполнительным механизмом Raspberry Pi
- Аэропоника с Raspberry Pi и датчиком влажности
- Как проверить и откалибровать датчик влажности
- Windows 10 IoT Core и SHT15
- Клеточные автоматы на основе Arduino и OLED