Использование таймера

PeaceDuke_22rus
Offline
Зарегистрирован: 20.05.2019

Всем доброго времени суток! Я студент, программировал только на уроках информатики на Паскале :) Прошу помощи в написании программы для вольтметра. Имеется на входе аналогового пина переменное напряжение от 0 до +5 вольт через делитель напряжения и диодный мост от сети 220.

 

 

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

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int mass[101];                      // Массив мгновенных напряжений
long ism = 0;                       // Измеренное напряжение 
long summ = 0;                      // Сумма квадратов
float sqrtsum = 0;
int itog = 0;
float cfc = 0.19;

void setup()  
{ 
}
void loop()
{
     for ( int i = 1; i<101; i++)
     {  
       ism = mass [i];
       ism *= ism;
       summ += ism; 
      }
  sqrtsum = sqrt(summ);            //Считаем квадратный корень из суммы квадратов
  itog = sqrtsum * cfc ;           //Считаем итоговое с учётом коэффициента, который методом тыка подберем
  lcd.init();                      // Инициализация дисплея  
  lcd.backlight();                 // Подключение подсветки
  lcd.setCursor(0,0);              // Установка курсора в начало первой строки
  lcd.print("U=");                 // Набор текста на первой строке
  lcd.print(itog);
   }

Но, как я понимаю, цикл подсчёта будет бесконечным, пробовал разобраться с таймером, но как-то не доходит до меня как, что и куда)
Заранее спасибо)

negavoid
Offline
Зарегистрирован: 09.07.2016

это PeaceDeath, товарищи! :)

SLKH
Offline
Зарегистрирован: 17.08.2015

PeaceDuke_22rus пишет:

Всем доброго времени суток! Я студент, программировал только на уроках информатики на Паскале :) Прошу помощи в написании программы для вольтметра. Имеется на входе аналогового пина переменное напряжение от 0 до +5 вольт через делитель напряжения и диодный мост от сети 220.

 

 

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

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int mass[101];                      // Массив мгновенных напряжений
long ism = 0;                       // Измеренное напряжение 
long summ = 0;                      // Сумма квадратов
float sqrtsum = 0;
int itog = 0;
float cfc = 0.19;

void setup()  
{ 
}
void loop()
{
     for ( int i = 1; i<101; i++)
     {  
       ism = mass [i];
       ism *= ism;
       summ += ism; 
      }
  sqrtsum = sqrt(summ);            //Считаем квадратный корень из суммы квадратов
  itog = sqrtsum * cfc ;           //Считаем итоговое с учётом коэффициента, который методом тыка подберем
  lcd.init();                      // Инициализация дисплея  
  lcd.backlight();                 // Подключение подсветки
  lcd.setCursor(0,0);              // Установка курсора в начало первой строки
  lcd.print("U=");                 // Набор текста на первой строке
  lcd.print(itog);
   }

Но, как я понимаю, цикл подсчёта будет бесконечным, пробовал разобраться с таймером, но как-то не доходит до меня как, что и куда)
Заранее спасибо)

Откуда взялась эта {censored} схема? 

Как она подключается к контроллеру? Какое напряжение может быть на входе контроллера?

 

Программа не лучше. Вставь с номерами строк и попробуй себе объяснить, что творится в цикле for

 

Цитата:
Но, как я понимаю, цикл подсчёта будет бесконечным

Это вряд ли. Автомат на щитке должен сработать.

 

 

-NMi-
Offline
Зарегистрирован: 20.08.2018

PeaceDuke_22rus пишет:

 Я студент, программировал только на уроках информатики на

Ххто тИбя "пустил" в университет???

С такими знаниями я-б тебя даже дворником не взял бы на работу!!!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

интересуюсь величиной дырки в микроконтроллере

b707
Offline
Зарегистрирован: 26.05.2017

У меня два вопроса:

 - где в этом коде измерение напряжения?

- при чем тут таймер?

 

ИМХО, может это кто-то троллит? Как-то концентрация бреда зашкаливает...

-NMi-
Offline
Зарегистрирован: 20.08.2018

b707 пишет:

ИМХО, может это кто-то троллит? Как-то концентрация бреда зашкаливает...

Дык проверь САМ - воткни в рАзетку конденсатор на 400 мкф. и ты поймёшь, кто троллит а кто нет. Заодно можешь и напряжение измерить в момент подключения конденсатора в розетку. Видео сего эксперимента весьма приветствуется.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

сезон токоубийства недалеких студентов щитаю открытым. 

А ник какбэ намекаэ.... 

anatoli_nik
Offline
Зарегистрирован: 17.01.2019

Цитата:
Это вряд ли. Автомат на щитке должен сработать.

С каких censored?

Суммарная емкость конденсаторов ~83 мкФ, реактивное сопротивление 1900 Ом.

Цитата:
Дык проверь САМ - воткни в рАзетку конденсатор на 400 мкф.

Какой конденсатор? Полярный, неполярный?

Если неполярный то нифига не будет, можешь проверить САМ.

Цитата:
интересуюсь величиной дырки в микроконтроллере

ТС пропал, видимо конденсаторы были полярные.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:

У меня два вопроса:

 - где в этом коде измерение напряжения?

- при чем тут таймер?

 

ИМХО, может это кто-то троллит? Как-то концентрация бреда зашкаливает...

Теперь понятно, почему вы накинулись на меня с задачей о бочке, ну не знал геометрии но не самоубивец жеж

svm
Offline
Зарегистрирован: 06.11.2016

anatoli_nik пишет:

ТС пропал, видимо конденсаторы были полярные.

А неполярные на такую емкость и напряжение хотя-бы вольт 400 на столе не уместятся. Это злые козни преподавателя, решившего избавиться от нерадивого студента.

anatoli_nik
Offline
Зарегистрирован: 17.01.2019

Ну почему же, СВВ60 на 100мкФ 450В имеет размеры 6*12см, 6шт на столе легко поместится.

П.С. Контроллер жалко.. А студентов ***** еще нарожает.