Чувствительный к силе резистор 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);
}

, 👍0

Обсуждение

ваш вопрос не имеет ничего общего с датчиком силы... это вопрос о рисовании гистограмм на ЖК-дисплее.... вам действительно следует отредактировать свой вопрос и заголовок так, чтобы он отражал реальный вопрос.... таким образом , люди найдут ваш вопрос, если будут изучать графики на ЖК-дисплее, @jsotola


2 ответа


Лучший ответ:

1

Это можно сделать двумя способами: простым и навороченным способом.

Простой путь действительно прост. Поскольку на дисплее могут отображаться только символы, вы просто отображаете символы — этого достаточно, чтобы представить гистограмму.

Если у вас дисплей с «Rom Code A00»*, то символ 255 представляет собой сплошной блок (▇), поэтому вы просто печатаете от 0 до 16 из них подряд. 0 — 0%, а 16 — 100%. (Если у вас код ROM A02, вы можете просто использовать # или создать собственный символ — см. ниже).

Force:▒▒▒▒▒▒▒▒▒▒
▇▇▇▇▇▇▇▇▇▒▒▒▒▒▒▒

Или с помощью #:

Force:▒▒▒▒▒▒▒▒▒▒
#########▒▒▒▒▒▒▒

Причудливый способ — использовать функцию программируемых символов. Вы создадите 4 новых персонажа, которые частично заполнят блок. Каждый символ имеет ширину 5 пикселей, поэтому создайте символ с одним набором столбцов пикселей (▏), один с набором из 2 пикселей (▍), набором из 3 (▌) и набором из 4 пикселей (▋) (у вас уже есть все 5 наборов в символе). 255, если у вас код ПЗУ A00 - в противном случае определите 5-й со всеми 5 столбцами). Теперь вы можете проявить смекалку и потренироваться:

  1. Сколько полных символов нужно напечатать, и
  2. Какие из дополнительных символов печатать в конце.

Это дает эффективное разрешение 16*5 (80) пикселей по горизонтали (хотя и с небольшим зазором между каждым набором в 5 пикселей).

Как именно вы поступите, какой бы из этих методов вы ни выбрали, теперь зависит от вас.


*: Код ПЗУ A00 — это символьное ПЗУ с японскими буквами в символах 128–255. Вместо этого в коде ПЗУ A02 используются символы с европейским акцентом.

,

1

Из диспетчера библиотек установите библиотеку LcdBarGraphX автора Балажа Келемена.

Там также есть несколько примеров.

,

См. также [Библиотеку LcdBarGraph для Arduino](https://playground.arduino.cc/Code/LcdBarGraph). На GitHub Prapec есть оригинальная вилка для [LcdBarGraphX](https://github.com/prampec/LcdBarGraphX)., @Greenonline