Память ардуино

Тема в разделе "Arduino & Shields", создана пользователем gepard, 27 окт 2012.

  1. gepard

    gepard Нуб

    Можно ли сохранить цифру, которая бы показывала какое количество раз значение сенсера было превышено? i- это значение.
    if ((i == 3) && (digitalRead(knopka) == HIGH))
    {
    digitalWrite(sz, HIGH);
    digitalWrite(motor, HIGH);
    }
     
  2. Unixon

    Unixon Оракул Модератор

    Сохранить при отключении питания?
     
  3. gepard

    gepard Нуб

    Нет, как сохранить значение i, которое показывает какое количество раз сенсер привысел значение 100.
     
  4. Unixon

    Unixon Оракул Модератор

    В чем именно у вас проблема? Покажите скетч полностью.
     
  5. gepard

    gepard Нуб

    Код (Text):

    int mic = 0;
    int motor = 9;
    int sz = 12;
    int sk = 13;
    int knopka = 8;
    void setup() {
      pinMode(knopka, INPUT);
      pinMode(sk, OUTPUT);
      pinMode(sz, OUTPUT);
      Serial.begin(9600);
    }
    void loop() {
    int v= 3;
      int val = analogRead(mic);
      if (val>100) v = v++;
        {
          if ((v == 3) && (digitalRead(knopka) == HIGH))
        {
          digitalWrite(sz, HIGH);
          digitalWrite(motor, HIGH);
          v = 0;
          delay(5000);
          digitalWrite(sz, LOW);
        }
      if ((v != 3) && (digitalRead(knopka) == HIGH))
        {
          digitalWrite(sk, HIGH);
          v = 0;
          delay(5000);
          digitalWrite(sk, LOW);
        }
        }
      }
     
     
     
       
    Хотелось бы чтобы v увеличивалось на 1 при val>100.
     
  6. Unixon

    Unixon Оракул Модератор

    Просто объявите v снаружи loop(), там же, где и остальные переменные.
    И вот вместо этого v = v++ оставьте просто v++ .
     
  7. gepard

    gepard Нуб

    То есть мне объявить v в setup()?
    Ругается, что v не в тех скобках.
     
  8. Unixon

    Unixon Оракул Модератор

    Нет, до всех функций. В глобальной области видимости.

    Типа так:
    Код (Text):

    int v = 3;
     
    void setup()
    {
     // ...
    }
     
    void loop()
    {
     // ...
     if (...) v++;
     // ...
    }
     

    p.s. Почитайте что-нибудь по C / C++ :)
     
  9. gepard

    gepard Нуб

    Спасибо!
    А разве в самом начале описывается не подключение чего-то к контактам ардуино?
    Простите, я новичек:)
     
  10. Unixon

    Unixon Оракул Модератор

    Это просто глобальные объявления, так получилось что обычно народ стал там контакты прописывать.
     
  11. gepard

    gepard Нуб

    А как ардуино понимает где прописываются контакты, а где обычные цифры?
     
  12. Unixon

    Unixon Оракул Модератор

    Никак, это одно и то же :D

    А в начале пишут потому, что... существуют некоторые правила оформления кода, призванные поддерживать порядок, чистоту, удобочитаемость и безошибочность кода. У каждого они могут быть свои, но, как правило, на общем фоне выделяются несколько стандартных способов оформления. В больших проектах для этого существует отдельный документ, за нарушение которого могут применяться разного рода негативные воздействия.

    Многие учились по видео Джереми Блюма и создателей Ардуино и унаследовали их стиль. Мое мнение по поводу их стиля таково, что они, в целом сделав хорошую вещь, откровенно слажали в некоторых отдельных местах и научили огромную тучу людей, не имевших до этого опыта программирования, не совсем хорошим манерам.
     
  13. gepard

    gepard Нуб

    Спасибо! Буду учить C :)