3 egyforma I2C eszköz használata egy időben
3 egyforma I2C eszköz használata egy időben
Sziasztok!
Van 3 ADSL345-ös gyorsulásmérőm és egy időben szeretném használni mind a hármat egy arduino duemilanove-val.
Wire.h és a ADXL345.h könyvárat használom és kényelmesen tudom kommunikálni egy gyorsulásmérővel.
Hogyan lehet megoldani, hogy 3 gyorsulásmérőt tudja egyszerre használni?
egy gyorsulásmérő egyszerű programja:
#include <Wire.h>
#include <ADXL345.h>
ADXL345 adxl;
int x,y,z;
int alfa;
void setup()
{
adxl.powerOn();
Serial.begin(9600);
}
void loop(){
adxl.readAccel(&x, &y, &z);
alfa = map(atan2(y, x)*180/3.1415, 0, 90, 0, 90);
Serial.println(alfa);
}
Van 3 ADSL345-ös gyorsulásmérőm és egy időben szeretném használni mind a hármat egy arduino duemilanove-val.
Wire.h és a ADXL345.h könyvárat használom és kényelmesen tudom kommunikálni egy gyorsulásmérővel.
Hogyan lehet megoldani, hogy 3 gyorsulásmérőt tudja egyszerre használni?
egy gyorsulásmérő egyszerű programja:
#include <Wire.h>
#include <ADXL345.h>
ADXL345 adxl;
int x,y,z;
int alfa;
void setup()
{
adxl.powerOn();
Serial.begin(9600);
}
void loop(){
adxl.readAccel(&x, &y, &z);
alfa = map(atan2(y, x)*180/3.1415, 0, 90, 0, 90);
Serial.println(alfa);
}
Re: 3 egyforma I2C eszköz használata egy időben
Közvetlenül Sehogy.
Egyetlen I2C címe van mind3 eszköznek.
A megoldás: kapcsolgatod a buszt az egyes IC-k közt valamilyen kétirányú átjáróchippel.
Amúgy a könyvtár nélkül a kód nem ér semmit. A *.h és *.cpp állományokat/függvénykönyvtárat egy zip-ben csatold legközelebb kérlek...
Egyetlen I2C címe van mind3 eszköznek.
A megoldás: kapcsolgatod a buszt az egyes IC-k közt valamilyen kétirányú átjáróchippel.
Amúgy a könyvtár nélkül a kód nem ér semmit. A *.h és *.cpp állományokat/függvénykönyvtárat egy zip-ben csatold legközelebb kérlek...
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Re: 3 egyforma I2C eszköz használata egy időben
Vagy átmész SPI buszos kezelésre és a chipselect lábbal kiválasztod, hogy melyiket akarod használni.
A kód teljes átírása kell hozzá
Talán segít:
http://mbed.org/cookbook/ADXL345-Accelerometer
A kód teljes átírása kell hozzá
Talán segít:
http://mbed.org/cookbook/ADXL345-Accelerometer
Re: 3 egyforma I2C eszköz használata egy időben
És mi értelme van ebből 3db. tenni 1 lapra?

Re: 3 egyforma I2C eszköz használata egy időben
Egy 3 részes robotkart építettem, amit 1-1 gyorsulásérzékelővel pontosítanék, és minden karrészre teszek egyet, amikkel szöget fogok mérni.
Re: 3 egyforma I2C eszköz használata egy időben
A SPI vezérlés HW támogatott, ezáltal gyorsabb, mint az IIC.
Viszont megkel csinálnod a három –cs bemenet vezérlését az ADXL345.cpp-ben.
Viszont megkel csinálnod a három –cs bemenet vezérlését az ADXL345.cpp-ben.
Kód: Egész kijelölése
ADXL345 Signal Name, mbed pin
Vcc Vout
Gnd Gnd
SDA p5
SDO p6
SCL p7
CS1 p8 // 1 ADXL345
CS2 p? // 2 ADXL345
CS3 p? // 3 ADXL345
Re: 3 egyforma I2C eszköz használata egy időben
Ezt a linket találtam, első egészen ígéretesnek néz ki, viszont nem látom benne, hogy mely lábakra kössem a szenzort (elsőnek csak egyet)
https://github.com/ograff/ADXL345---SPI#readme
Valaki tudna segíteni?
https://github.com/ograff/ADXL345---SPI#readme
Valaki tudna segíteni?
Re: 3 egyforma I2C eszköz használata egy időben
Hülye tipp: olyan gyorsulásmérő szenzor, ami 3 irányt tud?
Ami szívatás ezekkel: nem abs. pozíciót ad, hanem elmozdulási gyorsulást:( (gyro)
Így folyamatos összegzés kell, amiből tudod, hogy hol jár...
SPI: 11-12-13as láb (mosi/miso/sck) és ehhez a chipselect.
5V esetén jelszintillesztésről, 3V-s tápról ne feledkezz el!
Ami szívatás ezekkel: nem abs. pozíciót ad, hanem elmozdulási gyorsulást:( (gyro)
Így folyamatos összegzés kell, amiből tudod, hogy hol jár...
SPI: 11-12-13as láb (mosi/miso/sck) és ehhez a chipselect.
5V esetén jelszintillesztésről, 3V-s tápról ne feledkezz el!
Re: 3 egyforma I2C eszköz használata egy időben
nem elmozdulási gyorsulással fogok számolni, hanem van egy algoritmus ami kiszámolja, hogy hány fokos szögbe álljon be a robotkarrész, az beáll, majd a gyorsulásmérőből 2 irányt felhasználva kiszámolom, hogy hány fokos szögbe áll-t be a kar és ha az eltér az algoritmus által számolt értéktől akkor módosít a karrész helyzetén.
Kissé már felhúzott ez az SPI-s gyorsulásmérő.
Hátha te jobban tudsz guglizni, nem tudnál linkelni egy szerinted működő kódot egy ADXL345-ös gyorsulásmérőhöz, ami SPI busz-t használ?
Kissé már felhúzott ez az SPI-s gyorsulásmérő.
Hátha te jobban tudsz guglizni, nem tudnál linkelni egy szerinted működő kódot egy ADXL345-ös gyorsulásmérőhöz, ami SPI busz-t használ?
Re: 3 egyforma I2C eszköz használata egy időben
https://www.sparkfun.com/tutorials/240
Ez sem működik nálam, pedig igényesnek tűnik, és mindent úgy kötöttem be ahogy írták :/
ötlet?
Ez sem működik nálam, pedig igényesnek tűnik, és mindent úgy kötöttem be ahogy írták :/
ötlet?
Re: 3 egyforma I2C eszköz használata egy időben
Gyorsulásmérővel lehet dőlést mérni ugyanis ilyenkor a nehézségi gyorsulást mérjük, a gond akkor van amikor az ojjektum mozog vagy valami oknál fogva rezeg, ekkor megfelelő algoritmussal egy gyroszkóp + gyorsulásmérővel lehet szöget mérni.
Re: 3 egyforma I2C eszköz használata egy időben
Persze, de most nem is ez a problémám, a kar enyhén biztosan remegni fog, de 100 mérést gyorsan átlagolva, viszonylag pontos értéket kapok.
Most a legnagyobb problémám az az, hogy miért nem működnek az SPI könyvtárak amiket találok hozzá... :/
Most a legnagyobb problémám az az, hogy miért nem működnek az SPI könyvtárak amiket találok hozzá... :/
Re: 3 egyforma I2C eszköz használata egy időben
A bekötést hogy végezted?
Arduino - 5V-os, az eszköz 3.3V-os...
Re: 3 egyforma I2C eszköz használata egy időben
Az arduinomon van 3,3V-os kivezetés, vagy arra mondod, h a kommunikációs lábakon is 3.3V kellene és az lesz a baj? de olvastam, h 5V-on is elmegy, I2C-n megy 5V-on gond nélkül.
Re: 3 egyforma I2C eszköz használata egy időben
Nem megy el a kommunikációs lábon, mert a chip nem 5V toleráns.
Lehet meg is ölted a gyorsulásmérőket....
Lehet meg is ölted a gyorsulásmérőket....