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



Teraz jest 23 gru 2024, o 01:39


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
Avatar użytkownika

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

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
Avatar użytkownika

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

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
Avatar użytkownika

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

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 ]
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
Avatar użytkownika

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

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
Avatar użytkownika

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

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
Avatar użytkownika

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

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
Avatar użytkownika

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

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
Avatar użytkownika

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

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 5 gości


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