Pull to refresh
54
0
Сергей Труш @HWman

Techn0man1ac(техноманьяк)

Send message
Pakila А как насчёт энергонезависимости?
Ну вот, теперь будет повод ;)
Проект maple всё ещё жив благодаря товарищу Roger Clark, вот эго форум http://www.stm32duino.com/index.php
Sun-ami Ну… По поводу нагрузочной способности, я бы не сказал что всё так плохо:

image

У ATmega328, если мне не изменяет память, столько же.

А вот отсутствие EEPROM — да, смущает немного. Хотя слыхал про Backup Domain:

http://mcu8.ru/wp-gull/mylinks/2012/04/08/stm32-sohranenie-parametrov/

Пока что не разобрался особо, но как понял — специальная память, которая питается от отдельного источника, например как ионистора, и в паре с часами реального времени она себе работает и кушает какие-то микроамперы.
Я не удивлюсь, если у нас на Украине то же самое появится в скором времени.
Какое никакое, но оно есть.
Видел. Экран + трекер дороговато в сумме, но статья конечно же интересная.
Прошивка поддерживает калибровку.
MaxAlekseev Так чтобы явно от 2-3 см.
Датчик очень критично реагирует даже на медные провода, если смотрели видео то видели.
Просто не смог придумать синонима получше.
Ставил, та же картина.
Пробовал в Arduino IDE написать функцию для чтения состояния кнопок, в протеусе почему-то не работает, а в реальном железе проверить возможности пока что нет.

image

Не судите строго, писал ночью
#define PIN1 10
#define PIN2 11

#define DOWN 1
#define OK 2
#define UP 3
#define SET 4

void setup()
{
  Serial.begin(9600);
}

char checkKeys()
{ // понеслась

  pinMode(PIN1, OUTPUT);
  digitalWrite(PIN1, LOW);
  pinMode(PIN2, OUTPUT);
  digitalWrite(PIN2, LOW);

  int keysRead = 0;
  for (keysRead = 1; keysRead <= 4; keysRead++) {
    switch (keysRead) {
      case DOWN:
        digitalWrite(PIN1, INPUT_PULLUP); 
        if (digitalRead(PIN1) == false) {

          return DOWN;
        }
      break;

      case OK:
        pinMode(PIN1, OUTPUT);
        digitalWrite(PIN1, LOW);
        digitalWrite(PIN2, INPUT_PULLUP);
        if (digitalRead(PIN2) == false) {

          return OK;
        }
      break;

      case UP:
        pinMode(PIN2, OUTPUT);
        digitalWrite(PIN2, LOW);
        digitalWrite(PIN1, INPUT_PULLUP);
        if (digitalRead(PIN1) == false) {

          return UP;
        }
      break;

      case SET:
        digitalWrite(PIN2, INPUT_PULLUP); 
        if (digitalRead(PIN2) == false) {

          return SET;
        }
      break;
      default:
        return 0;

    }
  }
}


void loop()
{
  int keyScan = checkKeys();
  Serial.print(keyScan);
  Serial.print(" ");
  switch (keyScan) {
    case DOWN:
      Serial.println("DOWN");
      break;
    case OK:
      Serial.println("OK");
      break;
    case UP:
      Serial.println("UP");
      break;
    case SET:
      Serial.println("SET");
      break;
  }

  delay(500);
}



P.S. Если питать это чудо от 12В аккумулятора то шумы АЦП ± 0.5 LSB.

Information

Rating
Does not participate
Date of birth
Registered
Activity