Skocz do zawartości

kh94

Użytkownicy
  • Zawartość

    3
  • Rejestracja

  • Ostatnio

Reputacja

1 Neutralna

O kh94

  • Ranga
    1/10

Informacje

  • Płeć
    Mężczyzna
  1. Cześć wszystkim, jestem Krzysiek, dziś kończę 24 lata. Studiuję zaocznie automatykę przemysłową, moim celem była energetyka lecz utworzono tylko jedną specjalizację na roku. Obecnie wykonuję prace inżynierską na arduino, tak też trafiłem na to forum.
  2. Dziękuję za pomoc, faktycznie tam był problem. Poniżej zamieszczam poprawiony kod, użyłem pętli for, ponadto dodałem zmienną storage_loc_last która zapamiętuje ostatni zapisany adres w tabeli, teraz działa poprawnie, czy można było to rozwiązać jeszcze inaczej? Jestem początkujący więc chętnie zapoznam się z waszymi opiniami while (1 == 1) { if (storage_loc < 800 || storage[storage_loc] != 777) { for(storage_loc=0;storage_loc<storage_loc_last;storage_loc++){ test.write(storage[storage_loc]); } delay(100); }
  3. Witam, proszę was o pomoc, próbuję zrealizować następujący układ. Chcę sterować serwem za pomocą potencjometru, po przyciśnięciu przycisku arduino powinno zapisywać ruchy serwa, aby po ponownym naciśnięciu przycisku odtworzyć zapisaną sekwencję ruchów. Cały problem polega na tym że w momencie kiedy serwo powinno powtórzyć sekwencję ruchów, ono powtarza tylko jeden. Wydaje mi się ze odczytuje ono tylko pierwszą pozycję zapisaną w tabeli, czy mógłby ktoś to zweryfikować? Oto kod: #include <Servo.h> Servo test; int AnalogOut = 0; int NewAnalogOut = 0; int pin_Button = 12; int pin_Button_State = 0; int pin_Button_State_Last = 0; int storage[800]; int storage_loc = 0; int recording = 0; void setup() { Serial.begin(9600); test.attach(11); pinMode(pin_Button, INPUT); } // testing void loop() { pin_Button_State = digitalRead(pin_Button); if (pin_Button_State != pin_Button_State_Last) { if (pin_Button_State == HIGH) { recording++; if (recording == 2) { storage[storage_loc] = 777; } } delay(50); } pin_Button_State_Last = pin_Button_State; if (recording == 0) { int sensorValue = analogRead(A0); NewAnalogOut = map(sensorValue, 0, 1023, 0, 180); if (abs(NewAnalogOut - AnalogOut) > 2) { test.write(AnalogOut); AnalogOut = NewAnalogOut; } } delay(1); if ( recording == 1) { recording = 1; int sensorValue = analogRead(A0); NewAnalogOut = map(sensorValue, 0, 1023, 0, 180); if (abs(NewAnalogOut - AnalogOut) > 2) { test.write(AnalogOut); AnalogOut = NewAnalogOut; } if (storage_loc < 800) { storage[storage_loc] = NewAnalogOut; delay(100); Serial.println(storage_loc); storage_loc++; } } else if (recording > 1) { while (1 == 1) { storage_loc = 0; if (storage_loc < 800 || storage[storage_loc] != 777) { test.write(storage[storage_loc]); delay(100); } } }
×
×
  • Utwórz nowe...