синус на прямоугольник
- Войдите на сайт для отправки комментариев
Пт, 31/05/2019 - 03:49
Здравствуйте
Эта программа - измеритель переменного напряжения, пытаюсь добавить преобразователь входного синусоидального напряжения в прямоугольник.
Вот как начал, но это не работает.
#include "EmonLib.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(PA0, PA1, PA2, PA3, PA4, PA5);
EnergyMonitor emon1;
float cur, acur[50], sumc;
int (Irms);
/////////////////
int val;
////////////////
void setup()
{
///////////////////
val = analogRead(PA7);
//////////////////////
pinMode(PB14, OUTPUT);
//pinMode(PA7, INPUT);
pinMode(PA7, INPUT_ANALOG);
lcd.begin(16, 2);
emon1.current(PA7, 2.8);
}
void loop()
{
emon1.calcVI(20, 2);
float Irms = emon1.Irms;
lcd.setCursor(0, 1);
lcd.print("U=");
lcd.print(Irms);
//delay (500);
digitalWrite(PB14, val);
}
А в чем глубокий смысл преобразования синуса в прямогульник? И каким образом оно должно происходить?
например для счетчика частоты, digitalWrite(PB14, val); может быть 0 или 1 а это получается прямоугольник
читай аналоговый вход методом digitalRead() и всё преобразуется в цифру отоматисски.
не переключается, постоянно 1
1
схему давай.
Об оборудовании можно узнать? Какая плата? Как напряжение из +-220 в 0 +3 вольта преобразуется? Очень рекомендую с pdf файлом ознакомится отсюда https://create.arduino.cc/projecthub/Mr-Joe/smart-energy-monitor-based-on-arduino-05f042
вот схема, вместо arduino stm32f103, вход 3 V
nik182
Вот лучше
https://community.openenergymonitor.org/t/open-energy-monitor/441
В никаком open energy monitor не встретил чтобы преобразование делали программой
Нафих этот бред, у абдурин есть встроеный компаратор, вот его мучай.
Сделал так, но прямоугольники немного шатаются
int currentValue; int previousValue; int analogPin = PA7; int LED = PB14; void setup() { pinMode(PA7, INPUT_ANALOG); pinMode(PB14, OUTPUT); } void loop() { previousValue = currentValue; currentValue = analogRead(analogPin); //if (previousValue != currentValue) if (previousValue > currentValue) { digitalWrite(PB14, HIGH); digitalWrite(PB14,1); //LED = 1; } else { //digitalWrite(PB14, LOW); digitalWrite(PB14, 0); //LED = 0; } }Нафих этот бред, у абдурин есть встроеный компаратор, вот его мучай.
вот вот