Чувствительный к силе резистор Arduino с ЖК-дисплеем
Итак, нас попросили сделать что-то с чувствительным к силе резистором, поэтому, естественно, я подумал о проекте, который берет имя основного компонента, который является силой, и применяет его, мой работает, когда вы прикладываете все большее и большее давление к датчику. он принимает это значение и отображает его на ЖК-дисплее, но дисплей должен представлять собой гистограмму, которая увеличивается по мере увеличения давления. Проблема в том, что я действительно не знаю, как построить гистограмму на ЖК-дисплее 16х2. Пожалуйста помоги. (у моего ЖК есть I2c)
вот мой код для датчика давления
int fsrAnalogPin = 0; // FSR подключен к аналогу 0
int fsrReading; // аналоговое считывание с резисторного делителя FSR
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
fsrReading = analogRead(fsrAnalogPin);
Serial.print("Analog reading = ");
Serial.println(fsrReading);
delay(100);
}
Хорошо, я улучшил свой код и, наконец, получил его. Этот код отображает силу, обнаруженную fsr, в виде гистограммы
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <LcdBarGraphX.h>
#include<LcdBarGraph.h>
byte lcdNumCols = 20; // -- количество столбцов на ЖК-дисплее
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // -- создание экземпляра ЖК-дисплея
int fsrAnalogPin = 0; // FSR подключен к A0
// -- создание полос шириной 4 символа
LcdBarGraphX lbg0(&lcd, 16, 0, 0); // -- Первая строка в столбце 0 и строке 0 с 16 столбцами
void setup(void) {
Serial.begin(9600); // Мы отправим отладочную информацию через последовательный монитор
lcd.begin(4, lcdNumCols); // запускаем ЖК-дисплей с 2 строками и 16 столбцами
lcd.clear();
delay(100);
}
void loop(void) {
lbg0.drawValue( analogRead(fsrAnalogPin), 9); // 9 — это максимальный диапазон давления, который вы хотите
Serial.print("Analog reading = ");
Serial.println(fsrReading);
delay(100);
}
2 ответа
Лучший ответ:
Это можно сделать двумя способами: простым и навороченным способом.
Простой путь действительно прост. Поскольку на дисплее могут отображаться только символы, вы просто отображаете символы — этого достаточно, чтобы представить гистограмму.
Если у вас дисплей с «Rom Code A00»*, то символ 255 представляет собой сплошной блок (▇), поэтому вы просто печатаете от 0 до 16 из них подряд. 0 — 0%, а 16 — 100%. (Если у вас код ROM A02, вы можете просто использовать #
или создать собственный символ — см. ниже).
Force:▒▒▒▒▒▒▒▒▒▒
▇▇▇▇▇▇▇▇▇▒▒▒▒▒▒▒
Или с помощью #
:
Force:▒▒▒▒▒▒▒▒▒▒
#########▒▒▒▒▒▒▒
Причудливый способ — использовать функцию программируемых символов. Вы создадите 4 новых символа, которые частично заполнят блок. Каждый символ имеет ширину 5 пикселей, поэтому создайте символ с одним набором столбцов пикселей (▏), один с набором из 2 пикселей (▍), набором из 3 (▌) и набором из 4 пикселей (▋) (у вас уже есть все 5 наборов в символе). 255, если у вас код ПЗУ A00 - в противном случае определите 5-й со всеми 5 столбцами). Теперь вы можете проявить смекалку и потренироваться:
- Сколько полных символов нужно напечатать, и
- Какие из дополнительных символов печатать в конце.
Это дает эффективное разрешение 16*5 (80) пикселей по горизонтали (хотя и с небольшим зазором между каждым набором в 5 пикселей).
Как именно вы поступите, какой бы из этих методов вы ни выбрали, теперь зависит от вас.
*: Код ПЗУ A00 — это символьное ПЗУ с японскими буквами в символах 128–255. Вместо этого в коде ПЗУ A02 используются символы с европейским акцентом.
Из диспетчера библиотек установите библиотеку LcdBarGraphX автора Балажа Келемена.
Там также есть несколько примеров.
См. также [Библиотеку LcdBarGraph для Arduino](https://playground.arduino.cc/Code/LcdBarGraph). На GitHub Prapec есть оригинальная вилка для [LcdBarGraphX](https://github.com/prampec/LcdBarGraphX)., @Greenonline
- Чтение датчика давления от 4 до 20 мА с использованием uno
- Подключение датчика давления к Arduino для сбора данных о давлении и времени
- Ультразвуковой датчик Arduino и ЖК-дисплей - Нужна помощь -
- Датчики I2C не работают при подключении к LCD дисплею 20X04
- Реле давления 4-20 мА
- Проблема стабильности кода прерываний, связанного с датчиком расхода
- ЖК-дисплей отображает неверный символ при подсчете оборотов
- Я работал над проектом и получил ошибку компиляции для платы arduino uno. пожалуйста, помогите
ваш вопрос не имеет ничего общего с датчиком силы... это вопрос о рисовании гистограмм на ЖК-дисплее.... вам действительно следует отредактировать свой вопрос и заголовок так, чтобы он отражал реальный вопрос.... таким образом , люди найдут ваш вопрос, если будут изучать графики на ЖК-дисплее, @jsotola