Close

Výškoměr se záznamem na SD kartu

Úvodní stránka Fórum Vaše projekty Arduino Výškoměr se záznamem na SD kartu

Označeno štítky: 

Aktuálně jsou na stránce zobrazeny 2 příspěvky - 1. až 2. (celkem z 2)
  • Autor
    Příspěvky
  • #6268
    Diego
    Účastník

    Při pouštění draka mě zajímalo jak vysoko asi vyletí. Tak vznikl tento výškoměr.

    Výškoměr

    Výškoměr je postavený z:

    MCU Arduina UNO
    čidla tlaku vzduchu BMP180
    slotu na SD kartu
    držáku 2 ks AAA baterií
    DC/DC měniče na 5V
    LEDky a pár dalších součástek

    Schéma zapojení není potřeba – SD karta je připojena přes SPI rozhraní a čidlo tlaku přes I2C sběrnici. Zbytek lze vyčíst ze zdrojáku.

    Kód:
    `#include <LiquidCrystal.h>
    #include <Arduino.h>
    #include <Wire.h>
    #include <BMP085.h>
    #include <EEPROM.h>
    #include <SPI.h>
    #include <SD.h>

    #define LED 9 // LED na pinu 9

    const int chipSelect = 8; // CS SD karty na pinu 8

    long vyska = 0; // aktuální výška
    long vyskaI = 0; // základní výška
    long vys = 0; // výška

    BMP085 dps = BMP085(); // inicializace tlaku vzduchu

    void setup()
    {
    pinMode(8, OUTPUT); // pin 8 výstup
    pinMode(LED, OUTPUT); // pin LED výstup

    dps.init(MODE_STANDARD, 99700, false); // nastavení BMP180
    if (!SD.begin(chipSelect)) {} // inicializace SD karty
    delay(2000); // čekej 2s
    dps.getAltitude(&vyskaI); // čtení základní výšky
    delay(2000); // čekej 2s
    vyskaI = vyskaI/100; // převod výšky na metry
    }

    void loop()
    {

    dps.getAltitude(&vyska); // čtení aktuální výšky

    vyska = vyska/100; // převod výšky na metry

    vys = vyska – vyskaI; // výpočet výšky

    File sd = SD.open(„log.csv“, FILE_WRITE); // otevři log.csv

    if (sd) { //pokud soubor existuje pak zapiš

    sd.println(vys); // zapiš výšku

    sd.close(); // zavři log.csv

    blikOK(); // bliknutí při nahrání na SD kartu
    }

    else { // pokud se zápis nezdaří
    blikE(); // bliknutí při chybě nahrání na SD kartu
    }

    delay(4000); // čekej 4s
    }

    void blikOK() //bliknutí při nahrání na SD kartu
    {
    digitalWrite(LED, HIGH);
    delay(200);
    digitalWrite(LED, LOW);
    delay(1000);
    }

    void blikE() //blikání při chybě nahrání na SD kartu
    {
    digitalWrite(LED, HIGH);
    delay(200);
    digitalWrite(LED, LOW);
    delay(200);
    digitalWrite(LED, HIGH);
    delay(200);
    digitalWrite(LED, LOW);
    delay(200);
    digitalWrite(LED, HIGH);
    delay(200);
    digitalWrite(LED, LOW);
    delay(1000);
    }

    Konečně nastalo vhodné počasí na pouštění draka tak jsem vyrazil otestovat výškoměr. Prozatím jsem vyletěl do 34m. Musim sehnat delší provázek 🙂

    graf

    Další info na:
    http://elektronika2011.cz

    #6270
    Zbyšek Voda
    Správce

    To vypadá dobře:)

Aktuálně jsou na stránce zobrazeny 2 příspěvky - 1. až 2. (celkem z 2)
  • Pro reakci na toto téma se musíte přihlásit.