W ramach zabawy w nauke Arduino/STM32 moge pomoc 
Posiedzialem chwile po poludniu i jak narazie wydlubalem sobie przetwornik analogowo - cyfrowy wbudowany w Ardka, docelowo pewnie powinien byc osobny jak najblizej glowicy. Szybkosc rozwoju softu w jezyku wysokiego poziomu jest nieporownywalna. Wiekszosc czasu przypominalem sobie po prostu C i popelnialem glupie bledy przypominajac sobie czego nie wolno robic
Testowy uklad wyglada nastepujaco
TYLKO ZAREJESTROWANI I ZALOGOWANI UŻYTKOWNICY WIDZĄ ZDJĘCIA. DARMOWA REJESTRACJA
W najblizszym czasie pewnie polutuje jakis AD8307 na szybko na pajaku i porownam zachowanie z "normlanym" miernikiem.
Aha, no i oczywiscie zapomnialem - kod programu zeby pokazac jak wielkie ulatwienie mamy teraz dostepne:
pz
Posiedzialem chwile po poludniu i jak narazie wydlubalem sobie przetwornik analogowo - cyfrowy wbudowany w Ardka, docelowo pewnie powinien byc osobny jak najblizej glowicy. Szybkosc rozwoju softu w jezyku wysokiego poziomu jest nieporownywalna. Wiekszosc czasu przypominalem sobie po prostu C i popelnialem glupie bledy przypominajac sobie czego nie wolno robic
Testowy uklad wyglada nastepujaco
TYLKO ZAREJESTROWANI I ZALOGOWANI UŻYTKOWNICY WIDZĄ ZDJĘCIA. DARMOWA REJESTRACJA
W najblizszym czasie pewnie polutuje jakis AD8307 na szybko na pajaku i porownam zachowanie z "normlanym" miernikiem.
Aha, no i oczywiscie zapomnialem - kod programu zeby pokazac jak wielkie ulatwienie mamy teraz dostepne:
"code" pisze:
/*
* Testowy program do wyswietlacza i innych zabawek
*
*/
// Dolaczane naglowki
#include <Adafruit_GFX.h>
#include <IIC_without_ACK.h>
#include "oledfont.c"
// Definicja pinow I/O do komunikacji
// Arduino Mega ma domyslnie dla I2C: SDA = 20, SCL = 21
#define OLED_SDA 20
#define OLED_SCL 21
// Okreslenie wejscia ADC
#define ADC0 0
String ADC0value="", ADC0valueDB="";
float ADC0valueFloat=0, ADC0valueDBFloat=0;
// Inicjalizacja obiektu
IIC_without_ACK wyswietlacz(OLED_SDA, OLED_SCL);
void setup()
{
// Inicjalizacja wyswietlacza
wyswietlacz.Initial();
// Wyczyszczenie wyswietlacza
wyswietlacz.Fill_Screen(0x00);
// Serial.begin(9600);
delay(10);
}
void loop()
{
// Odczytanie wejscia przetwornika ADC, zapisanie do stringa oraz tablicy char
ADC0valueFloat = analogRead(ADC0)*5.0/1023;
ADC0valueDBFloat = 20 * log10(ADC0valueFloat/0.001);
ADC0value=String(ADC0valueFloat)+" V";
ADC0valueDB=String(ADC0valueDBFloat)+" dBmV";
char ADC0valueChar[ADC0value.length()+1];
ADC0value.toCharArray(ADC0valueChar, ADC0value.length()+1);
char ADC0valueDBChar[ADC0valueDB.length()+1];
ADC0valueDB.toCharArray(ADC0valueDBChar, ADC0valueDB.length()+1);
// Tutaj juz normalnie piszemy - dla 8x16 max dlugosc linii to 16 znakow
wyswietlacz.Char_F8x16(0, 0, "Wartosc napiecia"
;
wyswietlacz.Char_F8x16( ( (16-ADC0value.length())*8/2 ), 4, ADC0valueChar);
wyswietlacz.Char_F8x16( ( (16-ADC0valueDB.length())*8/2), 6, ADC0valueDBChar);
delay(500);
}
/*
* Testowy program do wyswietlacza i innych zabawek
*
*/
// Dolaczane naglowki
#include <Adafruit_GFX.h>
#include <IIC_without_ACK.h>
#include "oledfont.c"
// Definicja pinow I/O do komunikacji
// Arduino Mega ma domyslnie dla I2C: SDA = 20, SCL = 21
#define OLED_SDA 20
#define OLED_SCL 21
// Okreslenie wejscia ADC
#define ADC0 0
String ADC0value="", ADC0valueDB="";
float ADC0valueFloat=0, ADC0valueDBFloat=0;
// Inicjalizacja obiektu
IIC_without_ACK wyswietlacz(OLED_SDA, OLED_SCL);
void setup()
{
// Inicjalizacja wyswietlacza
wyswietlacz.Initial();
// Wyczyszczenie wyswietlacza
wyswietlacz.Fill_Screen(0x00);
// Serial.begin(9600);
delay(10);
}
void loop()
{
// Odczytanie wejscia przetwornika ADC, zapisanie do stringa oraz tablicy char
ADC0valueFloat = analogRead(ADC0)*5.0/1023;
ADC0valueDBFloat = 20 * log10(ADC0valueFloat/0.001);
ADC0value=String(ADC0valueFloat)+" V";
ADC0valueDB=String(ADC0valueDBFloat)+" dBmV";
char ADC0valueChar[ADC0value.length()+1];
ADC0value.toCharArray(ADC0valueChar, ADC0value.length()+1);
char ADC0valueDBChar[ADC0valueDB.length()+1];
ADC0valueDB.toCharArray(ADC0valueDBChar, ADC0valueDB.length()+1);
// Tutaj juz normalnie piszemy - dla 8x16 max dlugosc linii to 16 znakow
wyswietlacz.Char_F8x16(0, 0, "Wartosc napiecia"
wyswietlacz.Char_F8x16( ( (16-ADC0value.length())*8/2 ), 4, ADC0valueChar);
wyswietlacz.Char_F8x16( ( (16-ADC0valueDB.length())*8/2), 6, ADC0valueDBChar);
delay(500);
}
pz
Electrical engineers do it with less resistance