ШИМ
- Войдите на сайт для отправки комментариев
Ср, 14/02/2018 - 14:46
вот накидал скейч, по нему всё работает но проблема в том что на дисплей выводится от 0 до 250, а я хочу сделать что бы выводилось в процентах, то-есть 0-0% до 250-100%, всю голову сломал но не пойму как уровень сигнала шим перевести в процены на дисплее, будет в дальнейшем две пары кнопок и два выхода шим, но с этим проблем нет это я сам допишу
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
int led = 11; // Номер Pin к которому подключен диод
int brightness1 =0; // Переменная в которой хранится уровень яркости (От 0 до 250)
int buttonPlus=9; // Номер Pin к которому подключена кнопка
int buttonMinus=10; // Номер Pin к которому подключена кнопка -
void setup() {
pinMode(led, OUTPUT); // Порт 11 (led) будет работать как Выход.
// initialize serial communication at 9600 bits per second:
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay(); // очистка экрана и буфера
display.setTextSize(2); // установка размера текста
display.setTextColor(WHITE);
//delay(1000);
}
void loop() { // Этот цикл будет выполняться бесконечное количество раз.
if (digitalRead(buttonPlus) == HIGH) {
brightness += 25;
display.print(brightness);
} // Делаем проверку, если вход под номером 9 (buttonPlus) имеет состояние 5 В. Увеличиваем значение переменной яркости на 5 единиц.
if (digitalRead(buttonMinus) == HIGH) {
brightness -= 25;
display.print(brightness);
} // Делаем проверку, если вход под номером 10 (buttonMinus) имеет состояние 5 В. Уменьшаем значение переменной яркости на 5 единиц.
brightness1 = constrain(brightness, 0, 250); // Эта функция контролирует, что бы переменная brightness не стала больше 250 и меньше 0, если значение вылазит за границу то функция 0 или 250
analogWrite(led, brightness); // Устанавливаем состояние яркости для светодиода
delay(50); // Пауза 50 миллисекунд.
}
здец какой то !
1% = 100 / 250;
дальше умножайте полученый 1% на число которое пихаете в ШИМ.
еще есть функция map(), но об этом я даже боюсь зарекаться......
да уж, уже и проценты от 250 начали в форуме спрашивать. Скоро заведем тему "В помощь новичку - Таблица умножения" в прикрепленных :)
Мда, мельчает народ :)
Неужели в школе не учат простейшим преобразованиям?
МАКСИМАЛЬНОЕ_ЧИСЛО = 100%
ПРОВЕРОЧНОЕ_ЧИСЛО = x%
x * МАКСИМАЛЬНОЕ_ЧИСЛО == ПРОВЕРОЧНОЕ_ЧИСЛО * 100
x = (ПРОВЕРОЧНОЕ_ЧИСЛО * 100) / МАКСИМАЛЬНОЕ_ЧИСЛО
Получили x в процентах от максимального. Какой это класс, друзья - кто помнит? Четвёртый? Пятый?
да смешно, я не идеот и посчитать проценты могу, прочитайте вопрос, как заставить дисплей показывать проценты, если вы обратите внимание на display.print(brightness); то поймёте что он выводит яркость а надо проценты, какой командой задать ему эту задачу
да уж, уже и проценты от 250 начали в форуме спрашивать.
Почитайте вот эту тему. Даже не обязательно стартовый пост. Достаточно только заголовок и сообщения №№ 1 и 2 - они короткие
я не идеот
Точно?
как заставить дисплей
Попробуйте в таком порядке:
1. Убеждением
2. Шантажом
3. Угрозами
4. Пытками
В общем, сделайте ему предложение, от которого он не сможет отказаться.
Известно ведь, что добрым словом можно творить чудеса, но доброе слово, подкреплённое пистолетом - ещё эффективнее.
если я правельно понял то надо добавить функцию
и вывести на дисплей константу
если я правельно понял то надо добавить функцию
и вывести на дисплей константу
НеправЕльно ты понял. Все-таки - идЕот.
Купи учебник математики 5-ого класса (специально для тебя посмотрел в Яндексе, когда изучают проценты в школе). И учебник русского, чтобы писать грамотно.
да уж, уже и проценты от 250 начали в форуме спрашивать.
Почитайте вот эту тему. Даже не обязательно стартовый пост. Достаточно только заголовок и сообщения №№ 1 и 2 - они короткие
смотрю на дату регистрации 0_0
и тут и там "Эффект Бенджамина Баттона" в действии... грустно.
всем спасибо за "помощь"
всем спасибо за "помощь"
в ответе #1 вам все правильно написали. Если купите учебник и сравните - убедитесь, что и там то же самое написано. Остается только понять.
я думаю даже если это и произойдет, этот код все равно останется не рабочим, как и был изначально.
всем спасибо за "помощь"
Не за что. Когда Вам потребуется сложить два числа, обращайтесь, поможем.
всем спасибо за "помощь"
Не за что. Когда Вам потребуется сложить два числа, обращайтесь, поможем.
Ну и кому это умение нужно? Нынче отнимать и делить востребовано. И проценты левые у вас какие-то, как не пересчитываю, чушь полная. Еще со школы помню, если купить за рупь, а продать за три, то это всего жалкие 2%. А в вашей, типа формуле, какие то цифры безумные лезут, эдак и по миру пойти недолго.
Ну и кому это умение нужно? Нынче отнимать и делить востребовано.
И то верно. O tempora, o mores!