DC-DC 5A LED Drive Lithium Battery Charger Module with Voltmeter Ammeter LED Digit Display
Одометр для Катамарана
- 6 штук OLED Display с SPI интерфейсом, AtMega 1284P (arduino)
- GPS
- RTC PCF8563
- GY-87 MPU6050 HMC5883L BMP180 Модуль
- Потихоньку программируем. (Github)
GY-87 MPU6050 HMC5883L BMP180 Модуль
- 10DOF modules (three-axis gyroscope + triaxial accelerometer and three-axis magnetic field + atmospheric pressure)
- Means of communication: IIC Communication protocol(fully compatible with 3-5V system containing LLC circuit)
- Acceleration,Gyroscope and magnetometer
- chip:MPU6050+HMC5883+BMP180
- power supply :3.3V-5V
- size:2.2cmx1.7cm
Для включения компаса HMC5883L нужно следующие.
// Bypass Mode
Wire.beginTransmission(0x68); // Address of MPU5060
Wire.write(0x37);
Wire.write(0x02);
Wire.endTransmission();
Wire.beginTransmission(0x68);
Wire.write(0x6A);
Wire.write(0x00);
Wire.endTransmission();
// Disable Sleep Mode
Wire.beginTransmission(0x68);
Wire.write(0x6B);
Wire.write(0x00);
Wire.endTransmission();
Arduino ATmega 2560 16AU + CP2102 (USB to UART)
Вот решил Arduino собрать на ATmega2560, вот что получилось.
p.s. Плата переходник для подключения WG12864B
U8GLIB_KS0108_128 u8g(22,23,24,25,26,27,28,29,34,30,39,33,32,31);
// 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16,rst=31
Тест программка.
#include <openGLCD.h>
void setup()
{
GLCD.Init();
GLCD.SelectFont(System5x7);
GLCD.ClearScreen();
pinMode(A15, OUTPUT);
pinMode(44, OUTPUT);
digitalWrite(44, HIGH);
digitalWrite(A15,HIGH);
}
byte pos = 0;
byte r;
void loop()
{
while(1) {
GLCD.ClearScreen();
for(byte x=0;x<11;x++) {
r = random(1,63);
if (pos==0) {
Bar(pos,0,10,r);
}
else {
Bar(pos+(x*2),0,10,r);
}
pos=pos+10;
}
delay(200);
pos =0;
}
}
void Bar(int x,int y, int w, int h) {
GLCD.FillRect(x,63-h,w,h,BLACK);
}
void setup()
{
GLCD.Init();
GLCD.SelectFont(System5x7);
GLCD.ClearScreen();
pinMode(A15, OUTPUT);
pinMode(44, OUTPUT);
digitalWrite(44, HIGH);
digitalWrite(A15,HIGH);
}
byte pos = 0;
byte r;
void loop()
{
while(1) {
GLCD.ClearScreen();
for(byte x=0;x<11;x++) {
r = random(1,63);
if (pos==0) {
Bar(pos,0,10,r);
}
else {
Bar(pos+(x*2),0,10,r);
}
pos=pos+10;
}
delay(200);
pos =0;
}
}
void Bar(int x,int y, int w, int h) {
GLCD.FillRect(x,63-h,w,h,BLACK);
}