Представляем довольно интересную схемку детектора электромагнитного поля на микроконтроллере ATTiny85V. При помощи устройства можно находить источник электромагнитного поля. Детектор содержит минимум деталей, а выглядит он вот так:

Детектор электромагнитного поля на микроконтроллере ATtiny

Детектор электромагнитного поля на микроконтроллере ATtiny

 

Основным элементом тут является довольно популярный микроконтроллер ATtiny.

Схема детектор

Схема детектор электромагнитного поля на микроконтроллере ATTiny

 

Изначально лучше собирать на макетной плате — так намного удобнее находить неисправности. А в случае не правильной сборки и не придется ничего перепаивать.

Скетч


// EMF Detector Attiny85 and 4 led v1.0
// 23.10.2015
// original code/project by Aaron ALAI - aaronalai1@gmail.com
// modified for use by Giovanni Gentile - giovanni@0lab.it
//              Attiny 85
//                ____
//       Reset  -      - vcc+
//          led -      - led
//  4Moh + ante -      - led
//          GND -      - led
//
// Put the 4 Mohm resistor to pin 3 and GND and put antenna

#define NUMREADINGS 15 // Number of readings

int senseLimit = 15; // raise this num to decrease sensitivity
int val = 0; 
int antenna = A2;

int LED[] = {2,0,1,3};

// Variables for smoothing
int readings[NUMREADINGS];
int index = 0;
int total = 0;
int averange = 0;

void setup() {
  
  pinMode(2, OUTPUT);
  pinMode(0, OUTPUT);
  pinMode(1, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(A2, INPUT);

// Test leds
  for (int i=0; i<4; i++) {
    digitalWrite(LED[i],HIGH);
    delay(500);
  }
  for (int i=0; i<4; i++) {
    digitalWrite(LED[i],LOW);
  }
  
// Initialize all the readings
  for (int i = 0; i < NUMREADINGS; i++) { readings[i] = 0; } } void loop() { int val = analogRead(antenna); if(val >= 1){
    
    val = constrain(val, 1, senseLimit); // turn any readings higher than the senseLimit into the senseLmit value
    val = map(val, 1, senseLimit, 1, 1023); // remap the values
    
    total -= readings[index]; // subtract the last reading
    readings[index] = val;    // read from the sensor
    total+= readings[index];  // add the reading to the total
    index = (index + 1);      // advance to the next index
    
    if (index >= NUMREADINGS)
      index = 0;
  
    averange = total / NUMREADINGS;
    
    if (averange > 50) {
      digitalWrite(2,HIGH);
    }
    else {
      digitalWrite(2,LOW);
    }

    if (averange > 350) {
      digitalWrite(0,HIGH);
    }
    else {
      digitalWrite(0,LOW);
    }
  
    if (averange > 750) {
      digitalWrite(1,HIGH);
    }
    else {
      digitalWrite(1,LOW);
    }
  
    if (averange > 950) {
      digitalWrite(3,HIGH);
    }
    else {
      digitalWrite(3,LOW);
    }
  }
}

Загрузите этот код в ATTiny85. Информации о том как прошить микроконтроллер говорилось тут, также на эту тему предостаточно материалов в интернете.  Далее начинаем сборку проекта на макетной плате. Это делается доля того чтобы проверить проводку  и правильность сборки, прежде чем распаивать уже на текстолите. Этот шаг, вероятно, является наиболее важным. На этом этапа его гораздо сложнее исправить, когда проект уже спаян на плату. Код программы вы можете скачать по ссылке Github которая указана в конце статьи.

Изготовление антенны

Сделайте антенну желаемой формой. Это можно легко сделать, обернув кусок проволоки вокруг карандаша. Далее необходимо растянув его до нужной длины. На какую длину? — хороший вопрос. Как вы знаете, задавая такой замечательный вопрос, длина провода будет влиять на частоту, с которой он работает. Однако, поскольку мы не ищем конкретную частоту и вместо этого в основном ищем электрические помехи. Длина не имеет решающего значения для устройства. Я просто использовал запасной провод, который удерживал его форму при намотке. Мой провод оказался немного больше, чем отверстия на плате, поэтому я просверлил те, через которые он должен был пройти.

А так выглядит обратная сторона готового устройства.

Детектор электромагнитного поля в cобраном виде

 

Список радиодеталей
Обозначание Наименование Номинал Количество
1 МК1 микроконтроллер ATTiny85V 1
2 A1 Антенна 1
3 L1-L4 Светодиод подойдет любой 4
4 BA1 Батарея источник питания на 3 Вольт 1
5 B1 Кнопка 1
6 R1 Резистор 3.9 МОм 1
Полезные ссылки по проекту
Видео
Только полноправные пользователи могут оставлять комментарии. Войдите , пожалуйста.

Популярные записи

Последовательный периферийный интерфейс SPI

Последовательный периферийный интерфейс SPI (Serial Peripheral Interface) — последовательный стандарт передачи данных....

Подключение кнопки к микроконтроллеру AVR

В это примере подключим и научимся обрабатывать события нажатия кнопок при помощи микроконтроллера AVR....

Распиновка наиболее популярных микроконтроллеров AVR

Ниже представлена распиновка наиболее ходовых микроконтроллеров семейства AVR.  Описание выводов, их...

Пишем свою первую программу на микроконтроллере AVR

Решил начать осваивать микроконтроллеры (далее МК) AVR. Думал что все просто раз и прошил микроконтроллера, но...