/*
Тестовая программка возможностей ардуино по работе с OLED 0,96" экранчиком
Измерения постоянного напряжения и управления яркостью светодиода с помощью ШИМ
Экран подключен по i2c - +5, земля и на А4, А5 выводы
Переменный резистор 10К имитирует изменение напряжения на входе, красный +, черный минус, желтый на А0
Светодиод подключен через резистор 220 Ом на D11
*/
#include <OLED_I2C.h> // Библиотека простой рботы с экрнчиком
OLED myOLED(SDA, SCL); // Remember to add the RESET pin if your display requires it...
int ledPin = 11; // светодиод подключен к цифровому контакту 11 шим
extern uint8_t SmallFont[];
// extern uint8_t MediumNumbers[];
extern uint8_t BigNumbers[];
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
// Serial.begin(9600); // test serial output
pinMode(ledPin, OUTPUT); // объявляем вывод ШИМ как выход:
if(!myOLED.begin(SSD1306_128X64))
while(1); // In case the library failed to allocate enough RAM for the display buffer...
myOLED.setFont(SmallFont);
}
// the loop routine runs over and over again forever:
void loop() {
myOLED.setFont(SmallFont);
myOLED.print("VOLTAGE", CENTER, 10);
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
analogWrite(ledPin, sensorValue / 4);// Значения AnalogRead варьируются от 0 до 1023, значения AnalogWrite от 0 до 255.
myOLED.setFont(BigNumbers);
myOLED.printNumF(float(sensorValue * 0.0048), 2, CENTER, 28);
myOLED.update();
// Serial.println(sensorValue * 0.0048);
delay(100); // delay in between reads for stability
// myOLED.clrScr(); // test serial output
}
Отправить комментарий
Отправить комментарий