Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Arduino mega 2560 - Arduino Mega 2560 - Komunikacja po porcie szeregowym

26 Sie 2013 10:38 3303 2
  • Poziom 9  
    Witam.
    Niedawno zacząłem zabawę z Arduino i zainteresowałem się portem szeregowym. Napisałem program, który zapala, lub gasi diodę w zależności od tego, czy na terminalu portu szeregowego wpiszemy 1, lub 2. Wszystko działa pięknie, jednak mój problem polega na tym, że jeśli np. zapalę diodę i później wyłączę okienko terminalu, to dioda gaśnie. Jak zrobić żeby stan przesłany z terminalu został zapamiętany w zmiennych, bez względu na to, czy okienku terminalu jest odpalone, czy też nie.
    Poniżej zamieszczam kod programu:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    // Zmienne pomocnicze
    int led = 13; // Dioda podpięta pod port 13
    int stan = LOW; // Stan diody LOW lub HIGH
    int level = 0;
    int i = 0;

    // SETUP
    void setup() {
    // Inicjalizacja portu z diodą
    pinMode(led, OUTPUT);
    // Inicjalizacja prędkości komunikacji
    Serial.begin (128000); Serial.println("START READING");
    }

    void loop() {

    digitalWrite(led, stan); // ustawienie stanu logicznego na diodzie

    // Opcje wyświetlane w oknie terminalu
    if(i==0)
    {
    Serial.println("W Y B O R O P E R A C J I");
    Serial.println("1 - D I O D A Z A P A L O N A");
    Serial.println("2 - D I O D A Z G A S Z O N A");
    i=1;
    }
    if (Serial.available())
    {
    level = Serial.parseInt(); // pobieranie z terminalu i zapis do zmiennej level
    switch( level )
    {
    case 1: // Opcja pierwsza (zapalona dioda)

    stan = HIGH;
    Serial.println("Z A P A L O N A");
    level = 0;
    i = 0;

    break;

    case 2: // Opcja druga (zgaszona dioda)

    stan = LOW;
    Serial.println("Z G A S Z O N A");
    level = 0;
    i = 0;

    break;
    }
    }
    }

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Pozdrawiam.
  • Poziom 11  
    Niestety przy włączeniu i wyłączeniu terminala arduino się resetuje dlatego gubisz stan diody. Dobrym sposobem jest zapisanie stanu diody. Spróbuj jeszcze się połączyć przez inny terminal niż ten w arduino ide np. RealTerm.
  • Poziom 9  
    Dziękuje p.mezydlo za wyjaśnienie, w rzeczy samej należałoby np. zapisywać dany stan do eepromu, a później czytać go. Ja jednak zacząłem pisać program do sterowania arduino w processingu i bardzo dobrze się sprawdza.
    Pozdrawiam