logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega][C][INA125] - Waga łazienkowa INA125 Atmega

LichyiChydy 29 Sty 2015 11:02 1779 4
  • #1 14379688
    LichyiChydy
    Poziom 12  
    Witam.
    Chciałbym przerobić wagę łazienkową w taki sposób aby wynik był odczytywany przez atmegę. Jako wzmacniacza użyłem układu INA125
    Czy jeżeli układ INA 125 zasilam napięciem 5V to napięcie referencyjne 5 volt nie osiągnie tego poziomu i będzie wynosić 4,48 V z uwagi na zbyt niskie napięcie zasilania?
    Cały mój problem jest taki że mostem bez obciążenia daje mi 1,2mV mierzony miernikiem.
    Po obciążeniu wagi napięcie spada i dopiero po przekroczeniu obciążenia 27kg napięcie zmienia polaryzację i rośnie w dół.
    Co jest przyczyną tego stanu rzeczy?
    Czy prawidłowo podłączyłem mostek?
    Czy istniej możliwość pozostawienia elektroniki z wagi elektronicznej podpięcie się pod napięcie zasilenie mostka i użycie tego zasilania jako napięcia referencyjne dla atmegi a sygnał z mostka puścić na wzmocnienie na układ INA125?


    W wadze mamy cztery czujniki

    Górne czujniki mają przewody w kolorze

    Lewy Prawy
    Zielony, niebieski, żółty. Zielony, niebieski, żółty

    Dolne czujniki

    Lewy Prawy

    Czarny, biały, czerwony Czarny, biały, czerwony

    Opory między poszczególnymi przewodami
    Czarny Czerwony 1972 i drugim Czujniku między Żółtym i Zielony 1972
    Opory między przewodami Czarnym i Białym i Białym i Czerwonym 998
    Również w drugim czujniku Żółty i niebieski i Zielony niebieski 998

    Przewody połączyłem jak na rysunku.
    [Atmega][C][INA125] - Waga łazienkowa INA125 Atmega


    Kod: text
    Zaloguj się, aby zobaczyć kod

    #define BAUD 19200
    #define MYUBRR F_CPU/BAUD/16-1

    #include <stdio.h>
    #include <avr/io.h>
    #include <util/delay.h>


    /* Inicjuje port szeregowy AVRa */
    void USART_init(unsigned int myubrr)
    {
    /* Ustala prędkość transmisji */
    UBRRH = (unsigned char)(myubrr>>8);
    UBRRL = (unsigned char)myubrr;

    /* Włącza nadajnika */
    UCSRB = (1<<TXEN);

    /* Format ramki: 8 bitów danych, 1 bit stopu, brak bitu parzystości */
    UCSRC = (1<<URSEL)|(3<<UCSZ0);
    }


    /* Wysyła znak do portu szeregowego */
    static int USART_Transmit(char c, FILE *stream)
    {
    while(!(UCSRA & (1<<UDRE)));
    UDR = c;

    return 0;
    }


    /* Tworzy strumienia danych o nazwie 'mystdout' połączony
    z funkcją 'USART_Transmit' */
    static FILE mystdout = FDEV_SETUP_STREAM(USART_Transmit, NULL, _FDEV_SETUP_WRITE);







    int main(void)
    {

    /* Inicjalizuje port szeregowy AVRa */
    USART_init(MYUBRR);

    /* Przekierowuje standardowe wyjście do 'mystdout' */
    stdout = &mystdout;

    //ADMUX = |_BV(ADLAR) ; // wybierz kanał 0 przetwornika ADC
    ADCSRA = (1 <<ADEN) | (1 << ADPS2)| (1 << ADPS1)| (1 << ADPS0);//ADPS = 128zobacz sobie w nocie
    //1 << ADPS2) | (1 << ADPS0);
    unsigned int adc_value;

    printf("Witam Start Programu za 1 sekunde\n\r");
    _delay_ms(1000);
    printf("Start\n\r");
    while(1)
    {

    ADCSRA |= (1 << ADSC);
    // Oczekiwanie, aż konwersja kończy; ADSC = 0 oznacza Kompletna
    while (ADCSRA & (1 << ADSC));
    adc_value = ADCW;
    printf("adc_value %d \r\n", adc_value);
    _delay_ms(1000);
    //TODO:: Please write your application code
    }
    }
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #2 14379801
    Konto nie istnieje
    Konto nie istnieje  
  • #3 14380369
    LichyiChydy
    Poziom 12  
    Myślę że można to zmierzyć jednym INA125. Podłącza się czujniki w Mostek Wheatstone’a.
    Kupiłem inną wagę i działa ale bardzo mi pływa wynik na procesorze
  • #4 14380651
    Konto nie istnieje
    Konto nie istnieje  
  • #5 14381220
    LichyiChydy
    Poziom 12  
    Podłączyłem według rysunku z mojego pierwszego postu i działa na nowej wadze.
    Kupiłem prostą tanią wagę i w niej były podpisane przewody jako S+, S- do podłączenia przetwornika oraz E+, E- do podłączenia zasilania mostka.
    Podczepiłem się pod przewodami pod elektronikę wagi. Mój INA125 brak sygnał z wagi oraz atmega zasilenie referencyjne z wagi. O dziwo działa waga jak i atmega. Waga wskazywała prawidłowo wagę ale po pomiarze odłącza zasilanie co uniemożliwia takie podejście do tematu.. Na atmedzę mam rozrzut wielkości 20 jednostek.


    Jak na razie działam na płytce stykowej. Jeżeli podłączę adc przez dzielnik lub do INA125 ale zwarte końcówki sygnałowe to adc faluje w oko 2 3 jednostek. Ale jak podłączę pod mostek pomiarowy wagi odczyty adc falują w okolicach 20.
    Jak rozwiązać tak duży rozrzut pomiarowy?
REKLAMA