Автор Тема: Въпрос относно HIGH/LOW  (Прочетена 9974 пъти)

robo13

  • Новодошъл
  • *****
  • Публикации: 8
    • Профил
Въпрос относно HIGH/LOW
« -: Декември 22, 2015, 11:29:24 pm »
Здравейте,

Още съм начинаещ с ардуиното, но все пак бързо се уча. Въпросът ми е свързан с HIGH и LOW. Някъде бях чел, че са като "логическата еденица и нула". При мен точно обратното се получава. При HIGH напрежението спира, а при LOW е пуснато. Това нормално ли е или има проблем.

int a = 2; 
int b = 3; 
int c = 4; 
int d = 5; 
int e = 6; 
int f = 8; 
int g = 9; 

void setup() {

  pinMode(a, OUTPUT);
  pinMode(b, OUTPUT);
  pinMode(c, OUTPUT);
  pinMode(d, OUTPUT);
  pinMode(e, OUTPUT);
  pinMode(f, OUTPUT);
  pinMode(g, OUTPUT);
 
}

void displayDigit(int digit)
{
  if (digit != 1 && digit != 4)
  {
    digitalWrite(a, HIGH);
  }

  if (digit != 5 && digit != 6)
  {
    digitalWrite(b, HIGH);
  }

  if (digit != 2)
  {
    digitalWrite(c, HIGH);
  }

  if (digit != 7 && digit != 1 && digit != 4)
  {
    digitalWrite(d, HIGH);
  }

  if (digit == 2 || digit == 6 || digit == 8 || digit == 0)
  {
    digitalWrite(e, HIGH);
  }

  if (digit != 1 && digit != 2 && digit != 7 && digit != 9)
  {
    digitalWrite(f, HIGH);
  }

  if (digit != 0 && digit != 1 && digit != 7)
  {
    digitalWrite(g, HIGH);
  } 
}

void loop()
{
  for(int i = 0; i < 10; i++)
  {
    displayDigit(i);
    delay(1000);
    turnOff();
  }
}

void turnOff()
{
  digitalWrite(a, LOW);
  digitalWrite(b, LOW);
  digitalWrite(c, LOW);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);
}
« Последна редакция: Декември 22, 2015, 11:37:49 pm от robo13 »

robo13

  • Новодошъл
  • *****
  • Публикации: 8
    • Профил
Re: Въпрос относно HIGH/LOW
« Отговор #1 -: Декември 23, 2015, 06:57:00 pm »
Също така премерих с мултицета напрежението и при HIGH е 0V, а при LOW e 5V

vgavrilov

  • Новодошъл
  • *****
  • Публикации: 2
    • Профил
Re: Въпрос относно HIGH/LOW
« Отговор #2 -: Януари 07, 2016, 01:41:18 pm »
Пиши с какво адруино си, и какво иде използваш.
Опитай с digitalWrite(b, 0); и digitalWrite(b, 1);