Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 7 cze 2025, o 02:34


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 
    Autor Wiadomość
    PostNapisane: 10 paź 2015, o 14:24 
    Offline
    Nowy

    Dołączył(a): 10 paź 2015
    Posty: 12
    Pomógł: 0

    Witam,
    Przy wykonywaniu pracy inżynierskiej pojawił się problem, w momencie kiedy mam podłączony kabel USB do komputera i program wykonuje się w IDE wszystkie dane z trzech magnetometrów zapisują się na kartę SD, jednak po podłaczeniu zewnętrznego zasilania również USB+ zasilacz 5V, (użyłam takiego ponieważ czytnik kart SD działa na 3,3V a wiec tylko przez port USB na arduino micro), każdy pomiar zapisuje się po naciśnięciu przycisku. Czy ktoś wie dlaczego przy zewnętrznym zasilaniu dane nie zapisują się na kartę SD?
    Pozdrawiam,
    Marta



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 16:54 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 maja 2012
    Posty: 162
    Pomógł: 6

    To jakie w końcu napięcie masz na tym procku przy tym zewn zasialniu? 5 czy 3.3?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 17:24 
    Offline
    Nowy

    Dołączył(a): 10 paź 2015
    Posty: 12
    Pomógł: 0

    Zasilam 5V z zasilacza, (3,3 V potrzebuje do zasilenia czytnika kart, a moduł Arduino daje 3.3 tylko gdy jest zasilane przez USB na płytce, dlatego nie mogłam podłaczyć zasilania poprostu do VIN i GND)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 17:42 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    marta1423 napisał(a):
    dlatego nie mogłam podłaczyć zasilania poprostu do VIN i GND)


    a to ciekawe ..... wystarczy podać zasilanie na DC Power Jack i masz np:

    --- dla zasilacza 9V
    Vin = 9V
    5V i 3,3V

    często zasilam Arduino przez Vin i Gnd z AKU 8,4V -- i otrzymuję zarówno 5V jak i 3,3V
    stąd jest to bzdura co pisze koleżanka

    ale ... trzeba tam podać napięcie wyższe od 5V :) 8.4 - 9V typowo żeby wystartowały obwody zasilania

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 17:51 
    Offline
    Nowy

    Dołączył(a): 10 paź 2015
    Posty: 12
    Pomógł: 0

    Mam 3,3V na czytniku kart SD......
    Dobra to nie jest wazne, pytanie dotyczyło tego dlaczego nie ma zapisu na karte? probowałam wyzszym napieciem



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 17:55 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    pokaż kod , pokaż połączenia
    nikt nie będzie zgadywał

    U mnie odczyt i zapis na karcie działa bez problemu
    niezależnie od sposobu zasilania ,

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 18:02 
    Offline
    Nowy

    Dołączył(a): 10 paź 2015
    Posty: 12
    Pomógł: 0

    #define PCA9548ADDR 0x70 //1110000
    #define HMC5883LADDR 0x3D
    // Arduino Wire library is required if I2Cdev I2CDEV_ARDUINO_WIRE implementation
    // is used in I2Cdev.h
    #include "Wire.h"

    // I2Cdev and HMC5883L must be installed as libraries, or else the .cpp/.h files
    // for both classes must be in the include path of your project
    #include "I2Cdev.h"
    #include "HMC5883L.h"
    #include <SPI.h>
    #include <SD.h>

    // class default I2C address is 0x1E
    // specific I2C addresses may be passed as a parameter here
    // this device only supports one I2C address (0x1E)
    HMC5883L mag;

    int16_t mx1, my1, mz1 ;

    int16_t mx2, my2, mz2 ;

    int16_t mx3, my3, mz3 ;
    int i=0;
    int switchPin = 4;

    #define LED_PIN 13
    bool blinkState = false;
    const int chipSelect = SS;
    String dataString = "";




    void setup() {
    Serial.println("1");
    pinMode(switchPin, INPUT);
    // join I2C bus (I2Cdev library doesn't do this automatically)
    Wire.begin();



    // initialize serial communication
    // (38400 chosen because it works as well at 8MHz as it does at 16MHz, but
    // it's really up to you depending on your project)
    Serial.begin(38400);
    while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
    }
    {

    // initialize device
    Serial.println("Initializing I2C devices...");


    // verify connection
    Serial.println("Testing device connections...");
    Serial.println(mag.testConnection() ? "HMC5883L connection successful" : "HMC5883L connection failed");
    Serial.println("0Deg+North : 90Deg+East : 180Deg+South : 270Deg+West");
    // configure Arduino LED for
    pinMode(LED_PIN, OUTPUT);
    !SD.begin(SS);

    }
    }





    void loop(){


    if (digitalRead(switchPin) == HIGH)
    {
    MAG1();
    MAG2();
    MAG3();

    }
    }

    void selectI2CChannels(int channels)
    {
    Wire.beginTransmission(PCA9548ADDR);
    Wire.write(channels);
    Wire.endTransmission();
    }
    void MAG1 ()
    {
    selectI2CChannels(0x01);
    mag.initialize();
    // read raw heading measurements from device
    mag.getHeading(&mx1, &my1, &mz1);


    // display tab-separated gyro x/y/z values
    Serial.print("mag1:\t");
    Serial.print(mx1); Serial.print("\t");
    Serial.print(my1); Serial.print("\t");
    Serial.print(mz1); Serial.print("\t");

    // To calculate heading in degrees. 0 degree indicates North
    float heading = atan2(my1, mx1);
    if(heading < 0)
    heading += 2 * M_PI;
    Serial.print("heading1:\t");
    Serial.println(heading * 180/M_PI);

    // blink LED to indicate activity
    blinkState = !blinkState;
    digitalWrite(LED_PIN, blinkState);


    delay(875);
    dataString = "mx1: ";
    dataString += String(mx1);
    dataString += " ; my1: ";
    dataString += String(my1);

    dataString += " ; mz1: ";
    dataString += String(mz1);


    dataString += "....";


    File dataFile = SD.open("zapis.txt", FILE_WRITE);

    // if the file is available, write to it:
    if (dataFile) {
    dataFile.println(dataString);
    dataFile.close();
    // print to the serial port too:
    Serial.println(dataString);
    }
    // if the file isn't open, pop up an error:
    else {
    Serial.println("error opening zapis.txt");
    }
    }
    void MAG2 ()
    {
    selectI2CChannels(0x02);
    mag.initialize();
    // read raw heading measurements from device
    mag.getHeading(&mx2, &my2, &mz2);


    // display tab-separated gyro x/y/z values
    Serial.print("mag2:\t");
    Serial.print(mx2); Serial.print("\t");
    Serial.print(my2); Serial.print("\t");
    Serial.print(mz2); Serial.print("\t");

    // To calculate heading in degrees. 0 degree indicates North
    float heading = atan2(my2, mx2);
    if(heading < 0)
    heading += 2 * M_PI;
    Serial.print("heading2:\t");
    Serial.println(heading * 180/M_PI);

    // blink LED to indicate activity
    blinkState = !blinkState;
    digitalWrite(LED_PIN, blinkState);


    delay(875);
    dataString = "mx2: ";
    dataString += String(mx2);
    dataString += " ; my2: ";
    dataString += String(my2);

    dataString += " ; mz2: ";
    dataString += String(mz2);


    dataString += "....";


    File dataFile = SD.open("zapis.txt", FILE_WRITE);

    // if the file is available, write to it:
    if (dataFile) {
    dataFile.println(dataString);
    dataFile.close();
    // print to the serial port too:
    Serial.println(dataString);
    }
    // if the file isn't open, pop up an error:
    else {
    Serial.println("error opening zapis.txt");
    }
    }
    void MAG3 ()
    {
    selectI2CChannels(0x03);
    mag.initialize();
    // read raw heading measurements from device
    mag.getHeading(&mx3, &my3, &mz3);


    // display tab-separated gyro x/y/z values
    Serial.print("mag3:\t");
    Serial.print(mx3); Serial.print("\t");
    Serial.print(my3); Serial.print("\t");
    Serial.print(mz3); Serial.print("\t");

    // To calculate heading in degrees. 0 degree indicates North
    float heading = atan2(my3, mx3);
    if(heading < 0)
    heading += 2 * M_PI;
    Serial.print("heading3:\t");
    Serial.println(heading * 180/M_PI);

    // blink LED to indicate activity
    blinkState = !blinkState;
    digitalWrite(LED_PIN, blinkState);


    delay(875);
    dataString = "mx3: ";
    dataString += String(mx3);
    dataString += " ; my3: ";
    dataString += String(my3);

    dataString += " ; mz3: ";
    dataString += String(mz3);


    dataString += "....";


    File dataFile = SD.open("zapis.txt", FILE_WRITE);

    // if the file is available, write to it:
    if (dataFile) {
    dataFile.println(dataString);
    dataFile.close();
    // print to the serial port too:
    Serial.println(dataString);
    }
    // if the file isn't open, pop up an error:
    else {
    Serial.println("error opening zapis.txt");
    }
    }

    ------------------------ [ Dodano po: 2 minutach ]

    Wyświetla 3 wartości natężenia ziemskiego pola magnetycznego z trzech czujników, obsługa multiplexera, no i ten nieszczęsny czytnik kart.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 18:07 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    popraw kody zgodnie z zasadami na forum: topic7402.html

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 18:11 
    Offline
    Nowy

    Dołączył(a): 10 paź 2015
    Posty: 12
    Pomógł: 0

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Ok przepraszam:) wiem jeszcze dużo musze się nauczyć



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 18:16 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Wystarczyło wejść w edycję w poprzednim poście :)

    Kod wydaje się być poprawny , choć mały maszkaron z niego ....<brrrrr>
    pozostaje jeszcze kwestia zasilania karty są takie utrapienia .....
    może jakieś problemy z połączeniami ??

    Może ten zasilacz co masz jest za słaby i masz napięcie , ale niema wystarczającej ilości prądu
    by zadziałał zapis ...

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 18:24 
    Offline
    Nowy

    Dołączył(a): 10 paź 2015
    Posty: 12
    Pomógł: 0

    Z tym zasilaniem karty wygląda to tak, że jeśli dam jej 5V to Arduino przestaje widzieć PORT, daje 3,3V wszystko śmiga, W momencie kiedy podłaczam zasilanie, w dowolny sposób czy przez USB czy też (VIN GND) nie świeci się zielona dioda po naciśnięciu przycisku wywołującego zapis. Jeśli podłaczam zasilanie bezposrednio do kompa i wgrywam mu program to zapisuje pięknie.

    ------------------------ [ Dodano po: 3 minutach ]

    Zasilacz mam z regulowanym napieciem od 3V do 12V, prąd 1A



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 18:32 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    to nie mam pojęcia ...
    :(

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 18:34 
    Offline
    Nowy

    Dołączył(a): 10 paź 2015
    Posty: 12
    Pomógł: 0

    Nie tylko Ty:) mój wykładowca też nie miał pojęcia, ale dzięki za chęci:)

    ------------------------ [ Dodano po: 5 minutach ]

    Jeszcze jedno pytanko, podłaczasz zasilanie i śmiga z miejsca?;> czy po RESET?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 18:51 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    startuje od strzała
    bez resetu

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 19:03 
    Offline
    Nowy

    Dołączył(a): 10 paź 2015
    Posty: 12
    Pomógł: 0

    Dobra spróbuje może z większym prądem, może tutaj jest problem



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 19:44 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    spróbuj zasilać arduino przez DC Power Jack (to gniazdo 2,1mm)
    9V zapodaj tam

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 paź 2015, o 20:40 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sty 2014
    Posty: 243
    Pomógł: 9

    A nie jest walnięty stabilizator napięcia 3,3V?

    _________________
    http://www.ate-zbaszyn.eu



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 paź 2015, o 14:31 
    Offline
    Nowy

    Dołączył(a): 10 paź 2015
    Posty: 12
    Pomógł: 0

    Działa:) trzeba było wyrzucić z całego kodu "SERIAL", zatrzymywał się na { while (!Serial) }, pozdrawiam!



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 paź 2015, o 15:01 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    a no widzisz koleżanko ... założyłem że masz leonardo i na takowym testowałem kod ...
    :)

    Następnym razem pisz proszę precyzyjnie ... jaki klon , procek itd ..:)
    Niemniej cieszę się że wszystko działa :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO