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

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

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

 

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

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

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

 

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

Скетч


// EMF Detector Attiny85 and 4 led v1.0
// 23.10.2015
// original code/project by Aaron ALAI - [email protected]
// modified for use by Giovanni Gentile - [email protected]
//              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
Полезные ссылки по проекту
Видео

Похожие записи

Память микроконтроллера. Виды памяти микроконтроллеров

Практически все современные микроконтроллеры имеют на своем борту 3 вида  памяти: Виды памяти микроконтроллеров память программ FLASH; оперативная память (ОЗУ) SRAM (Static RAM); ...

Светодиодная мигалка на микросхеме NE 555

Это простая схема двойного светодиодного мигающего сигнала. В качестве базовой схемы нестабильного мультивибратора используется таймер NE 555. Светодиоды включаются по очереди, частоту...

Схема полицейской мигалки на микроконтроллере

Представленная схема полицейской мигалки на микроконтроллере и светодиодах может работать в 16 различных режимах. Режим выбирается при помощи одной кнопки, и собрана на микроконтроллере...

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

Последовательный интерфейс I2C (также его обозначается как IIC) довольно популярный последовательный интерфейс. Свою популярность он получил за неплохую скорость передачи информации. В...

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

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

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

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

Только полноправные пользователи могут оставлять комментарии. Войдите , пожалуйста.