Uwaga: Na forum proszę rejestrować się pełnym znakiem, inne nicki będą blokowane. Następnie należy się przedstawić pisząc kilka słów o sobie, swoich zainteresowaniach...

NOWE POSTY | NOWE TEMATY | POPULARNE | STAT | RSS | KONTAKT | REJESTRACJA   Login: Hasło: RSS Facebook


HOME · Analog Devices ADL6010 czyli detector do 44 GHz · Wpis #1975384
SP2IPT 08.11.2014 22:08:49


Lokalizacja: JO94GI

Posty: 1002 #1975384
W ramach zabawy w nauke Arduino/STM32 moge pomoc wesoły
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 pan zielony

Testowy uklad wyglada nastepujaco bardzo szczęśliwy



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"oczko;
    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 wesoły

Zobacz ten wpis w wątku


Aby pisać na forum musisz się zalogować !!!

Załóż własne forum dyskusyjne na iq24.pl