Как да си направим брояч на Geiger

домашен гийгер брояч

Остров Три Мил, Чернобил, Фукушима и дори някои на национална територия като реактора Coral-I в Мадрид или реактора Vandellós-I в Каталуния. Има много ядрени аварии които са се случвали през цялата история и въпреки ужасните последици, изглежда, че тази тема на radiación продължава да поражда определена атракция. Но това, което малцина знаят е, че всеки ден сме изложени на естествена радиация, както тази, която идва от космоса, така и тази, която идва от минералите на земята ...

Е, ако искате да измерите радиацията около себе си, в това ново ръководство ще ви покажем стъпка по стъпка процедурата на как можете да изградите брояч на geiger, т.е. устройство, способно да измерва радиоактивността. По същество това е устройство, което може да измерва частици, които въздействат със сензора, като йонизиращо лъчение, поради което се нарича брояч, тъй като може да преброи броя на ударите и следователно нивото на радиация на обект или място.

Какво трябва да знам преди?

нейонизиращи и йонизиращи лъчения символи

Преди да стартирам проекта „направи си сам“, бих искал да коментирам нещо за радиацията, за тези, които не знаят за това. Тези от вас, които вече имат предишни знания, можете да пропуснете този раздел и да отидете директно, за да видите следното ...

Какво е радиация?

Това е феномен на енергийно програмиране под формата на електромагнитни вълни или субатомни частици през среда. Следователно можем да имаме различни видове радиация.

Какви видове радиация има?

електромагнитен спектър

Има много видове радиация, като топлинна, електромагнитна и т.н., но тези, които ни интересуват тук, са две големи групи:

  • Не йонизиращо: това е вълна или частица, която не може да отстрани електроните от материята, тоест не може да йонизира. Примери за това могат да бъдат електромагнитните вълни на микровълни, радио, светлина и др.
  • Йонизиращо: това е вълна или частица, която може да откъсне електроните от материята, тоест може да йонизира поради високата си енергия. Следователно тя е най-опасната от всички. В рамките на тази група имаме лазери, рентгенови лъчи, алфа, бета, гама, спирачно излъчване или тормозно излъчване) и др.

Ако погледнем в електромагнитния спектър, вълните с най-дълга дължина на вълната, като радио или микровълнова печка, са най-малко проникващи, тези, които имат най-малко енергия (по-ниска честота). Докато се движим надясно, виждаме, че всеки път дължината на вълната е по-къса и честотата на вибрациите по-голяма, следователно те имат повече енергия и са по-проникващи и увреждащи.

Видове йонизиращи лъчения:

Алфа, бета и гама

Ако се съсредоточим върху йонизиращо лъчение, който е в състояние да измери брояча на Гайгер, трябва да филтрираме отново и да се съсредоточим върху три основни положения поради ядрените явления:

  • Alfa: те имат положителен заряд и са съставени от два протона и два неутрона, тоест те са хелиев атом. Те са най-малко опасни и проникващи, тъй като могат да бъдат спрени с обикновена хартия. Ефектът върху здравето зависи от някои проблеми, тъй като те дори не могат да проникнат във външния слой на кожата, но ако попаднат в тялото, могат да навредят. Вдишването, поглъщането или инжектирането в тялото на източници, които произвеждат това лъчение, може да увреди живата тъкан.
  • Бета: те са частици с отрицателен електрически заряд, електрони. Те са по-проницателни и енергични от предишните и за да ги спрем бихме могли да го направим с кухненско алуминиево фолио. Въпреки че са по-проникващи, те не са толкова вредни за живата тъкан и ДНК, колкото предишните, тъй като причинените от тях йонизации се случват по-широко. Това може да причини изгаряния на кожата и ако влязат в тялото, това може да е, но ...
  • ГамаГама лъчите са тези с най-висока проникваща сила и енергия, следователно най-опасните от всички. Това са фотони, чиста енергия, която не може лесно да бъде спряна, само с оловни листове, бетон и т.н. Те лесно преминават през тялото ни и причиняват сериозни увреждания на тъканите, ДНК мутации и т.н., с това, което води до себе си, като рак и дори внезапна смърт, ако дозата е висока.

Следователно това не е игра и от hwlibre ви препоръчваме да го направите вземете всички предпазни мерки и знайте добре какво правите. Ние не се грижим за възможни проблеми ...

Тръби на Гайгер-Мюлер:

тръба на Гайгер

Те са жизнената сила на всеки брояч на Geiger, тъй като това е устройството o сензор който е отговорен за приемането на радиация и трансформирането на този брой удари в електрически импулс, способен да бъде интерпретиран от останалата част от веригата. Известна е като тръба на Geiger-Müller или просто тръба на Geiger и можете да я закупите в различни онлайн магазини, като Amazon, Aliexpress и др. Друга възможност е да го премахнем от брояч на Geiger, който имаме в старо състояние или не се използва.

Има много от тях, различни модели (SBT-9, LND-712, J408y, ...) и различни производители (GSTube, LND, North Optic, ...). Най-популярни са американци и руснаци, въпреки че има и китайски. Някои от съветски произход са склонни да имат евтини цени, като най-скъпата е LND. Това, за което трябва да сме наясно, е стойностите на напрежението, между които се движи, тъй като аналоговият сигнал, който излъчва, ще бъде повече или по-малко интензивен в зависимост от уловеното лъчение.

Работа на тръба на Гайгер с удар от частици

страна продавач модел Частици, които улавя волтаж Материал цена
Русия GSTube СБМ-20 Бета / гама 400V алуминий Bajo
Русия GSTube СБМ-21 Бета / гама 650V алуминий Bajo
Русия GSTube Да-1г Гама 440V алуминий Bajo
Русия GSTube SBT-9 Бета / гама 389V алуминий Bajo
Русия GSTube Да-3bg Бета / гама 400V алуминий Bajo
EE.UU. LND LND-712 Алфа / бета / гама 500V Слюда средства
EE.UU. LND LND-7124 Алфа / бета / гама 500V Слюда Високо
EE.UU. LND LND-7224 Алфа / бета / гама 500V Слюда Високо
Китай Северна оптика J408y Гама 420V Cristal Bajo
Китай Северна оптика J305B Бета / гама 350V Cristal Bajo
Китай Северна оптика J306B Бета / гама 420V Cristal Bajo

Ето защо ще трябва да калибрираме нашата верига да преобразуваме тези сигнали в единици, в които обикновено се измерва радиацията, като Sievert (Sv), рентген или Rem, между другото ... Както бихме направили с температурен сензор, трябва да трансформираме тези изходни напрежения в градусите по Целзий или на скалата, която измерваме.

SI единица за измерване на радиацията:

Международната система (SI) има за единица Сиверт (Sv), не забравяйте, че има таблици, които показват опасността или ефектите от радиацията, която улавяме за здравето:

mSv Въздействия върху здравето
50-100 Промени в химията на кръвта
500 Гадене за броени часове
700 повръщанията
750 Косопад за 2-3 седмици
900 диария
1000 Кървене
4000 Възможна смърт след два месеца

Вече знаете, че това зависи не само от дозата, но и от изложение. Тоест, можем да получим доза 100 mSv веднъж и нищо не се случва, но ако получаваме 50 mSv в продължение на месеци, тогава дългосрочните ефекти могат да бъдат много отрицателни ...

Източници на лъчение за тестове:

Кристали на уран и детектор за дим

За изпълнение радиационни тестове, трябва да знаете, че има няколко опции. Има кристали на уран като тези, които виждате на това изображение (вляво), с които броячите на Geiger се тестват в лаборатории. Но има и други източници, по-близо до които можем да получим радиация или радиоактивен материал, като датчици за дим в пожароизвестителите.

В рамките на тези детектори има източник на йонизиращо лъчение на америций и произвеждат алфа радиация. Дори би трябвало да знаете, че много храни, богати на калий, имат изотоп, наречен Калий-40, който излъчва радиация, въпреки че изобщо не е проблем за нашето тяло, това са много ниски дози, точно както радиацията, която получаваме от самата природа (определени гранитни скали) или космоса.

Самите ние сме радиоактивни, направени сме от въглерод, а въглерод-14 е. Но ще изненада Знаейки, че ежедневно боравим с много радиоактивни неща, без да знаем: някои копчета, керамика, мрамор, някои лампи за къмпинг, цигари, хартия с покритие, някои фитили и т.н. Всичко, което бих могъл да използвам, за да тествам брояча на Geiger и да видя дали работи или не ...

Но повтарям, трябва да внимавате при работа с определени шрифтове.

Необходими материали:

След като всичко това е известно, отиваме директно към избройте всички компоненти, от които се нуждаем за изграждане на нашия домашен брояч на Geiger:

  1. DC-DC преобразувател / модул на регулатора високо напрежение (напр .: СОДИАЛЕН). Това ще ни помогне да регулираме високите напрежения, обработвани от Geiger-Müller, и да трансформираме това напрежение в малко напрежение, сравнимо с платките Arduino и други компоненти. Не забравяйте, че трябва да издържа на входното напрежение на тръбата, която сте избрали.
  2. Модул за зареждане, Например е.
  3. Модул за бюст Converter DC-DC 3-5v.
  4. ArduinoNano, въпреки че всеки друг също работи, но за да не се увеличи размерът твърде много, Nano е за предпочитане.
  5. OLED дисплей 128 × 64 или 128 × 32, които ще използваме като екран за показване на резултатите от измерването.
  6. 2n3904 транзистор за нашата тръба.
  7. Резистори 10M ома и още 10K.
  8. Кондензатор от 470pf.
  9. Прекъсвач за изключване и включване.
  10. Звънец или малък говорител.
  11. AAA батерия.

Това по отношение на компонентите, въпреки че ще ви е необходимо също инструменти като запояващи ютии, окабеляване за някои съединения, Arduino IDE за програмиране на платката, батерията или батериите, а също и персонализирана кутия, ако искате да защитите измервателния уред. Ако имате 3D принтер, можете да създадете персонализирана пластмасова кутия.

Стъпка по стъпка строителство на брояч на Geiger:

Схема на схемата на брояч на Гайгер

Следващото нещо, след като имате всички компоненти, е да съберете всички компоненти на пъзела според тази диаграма, която ви представяме. The монтиране той е относително прост и не се нуждае от допълнителни обяснения. Просто свързва всички елементи по този начин. Можете да го направите в едно макет преди да проверите дали всичко работи правилно и след това продължете да запоявате всички компоненти, за да го направите постоянен.

стъпки:

Лос стъпки за следване са:

  1. С мултицет можете калибрирайте напрежението (изображение 1). Например, ако сте избрали 410V тръба на Geiger-Müller, трябва да настроите потенциометъра на DC-DC модула, така че да работи при това напрежение.
  2. След това се ограничете до спойка или съединяване на всички компоненти както се появяват в предишната диаграма, както на изображение 2.
  3. Можете да използвате a кутия за защита всички компоненти или не.
  4. Свържете платката Arduino към вашия компютър с помощта на USB кабел и с Arduino IDE напишете следната програма (можете да го изтеглите от тук) за планирайте го и че може да преобразува напреженията, с които работим, при измервания в избраната от вас единица. Можете да използвате други единици, ако предпочитате, или да направите корекции, като промените изходния код на скицата ...
/*
*
* SCL - A5
* SDA - A4
*
*
* Voltmeter - A3
*
* PWM - D9
* Input - D2
*
* buzzer - D7
*
*/

#include <Bounce2.h>

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2

//////////////////////////////////////////////////////////////////////////////

unsigned long previousMillis = 0;
unsigned long previousMillis1 = 0;
const long interval = 40000;
const long interval1 = 500;

static const unsigned char PROGMEM lcd_bmp[] =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x1C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x0E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x1F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x1F, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x1F, 0xC0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x3F, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC0, 0x3F, 0xF0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC0, 0x3F, 0xF0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xE0, 0x7F, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xE0, 0x7F, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xF0, 0x7F, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xE0, 0x7F, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xC0, 0x3F, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x40, 0x38,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x80, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x09, 0x00, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0F, 0x00, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1F, 0x80, 0x18,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3F, 0xC0, 0x10,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x7F, 0xC0, 0x30,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0xE0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xF0, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0xFF, 0xF8, 0xC0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xF9, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFE, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFC, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

static const unsigned char PROGMEM logo[] =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x1C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x0E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x1F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x1F, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x1F, 0xC0,
0x07, 0x9E, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x7F, 0xC0, 0x3F, 0xE0,
0x07, 0x9E, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0xFF, 0xC0, 0x3F, 0xF0,
0x07, 0x9E, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x3F, 0xE0, 0x00, 0x00, 0xFF, 0xC0, 0x3F, 0xF0,
0x07, 0x9E, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0xFF, 0xE0, 0x7F, 0xF8,
0x07, 0x9E, 0x3E, 0x73, 0x9C, 0x00, 0x78, 0x3E, 0x3E, 0xF0, 0xF0, 0x01, 0xFF, 0xE0, 0x7F, 0xF8,
0x07, 0x9E, 0x7F, 0x33, 0x98, 0x00, 0x78, 0x7F, 0x3E, 0xF1, 0xF8, 0x01, 0xFF, 0xFF, 0xFF, 0xF8,
0x07, 0x9E, 0x7F, 0x33, 0xB8, 0x00, 0x78, 0x7F, 0x3E, 0xF3, 0xFC, 0x01, 0xFF, 0xF0, 0x7F, 0xF8,
0x07, 0xFE, 0xE7, 0x33, 0xB8, 0x00, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0xFF, 0xE0, 0x7F, 0xF8,
0x07, 0xFE, 0xE7, 0x3F, 0xF9, 0xF0, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0xFF, 0xC0, 0x3F, 0xF8,
0x07, 0xFE, 0xE7, 0x3F, 0xF9, 0xF0, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0xF8, 0x00, 0x03, 0xF8,
0x07, 0xFE, 0xE7, 0x3F, 0xF8, 0x00, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0x00, 0x20, 0x40, 0x38,
0x07, 0x9E, 0xE7, 0x3F, 0xF0, 0x00, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0x00, 0x10, 0x80, 0x08,
0x07, 0x9E, 0xE7, 0x1F, 0xF0, 0x00, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0x00, 0x09, 0x00, 0x08,
0x07, 0x9E, 0xE7, 0x1E, 0xF0, 0x00, 0x78, 0x73, 0xBF, 0xF3, 0x9C, 0x01, 0x00, 0x0F, 0x00, 0x08,
0x07, 0x9E, 0xE7, 0x1E, 0xF0, 0x00, 0x78, 0x73, 0xBF, 0xF3, 0x9C, 0x00, 0x80, 0x1F, 0x80, 0x18,
0x07, 0x9E, 0x7F, 0x1E, 0xF0, 0x00, 0x78, 0x7F, 0x3F, 0xE3, 0xFC, 0x00, 0x80, 0x3F, 0xC0, 0x10,
0x07, 0x9E, 0x7E, 0x1E, 0xF0, 0x00, 0x78, 0x3F, 0x3F, 0xC1, 0xF8, 0x00, 0xC0, 0x7F, 0xC0, 0x30,
0x07, 0x9E, 0x1C, 0x1C, 0xE0, 0x00, 0x78, 0x1C, 0x3F, 0x00, 0xF0, 0x00, 0x40, 0xFF, 0xE0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xF0, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0xFF, 0xF8, 0xC0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xF9, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFE, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFC, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

static const unsigned char PROGMEM fl[] =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

static const unsigned char PROGMEM bt1[] =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

const int buttonPin = 2;
const int ledPin = 13;

int buttonState = 0;
int bt = 0;
int pbt = 0;
int s1 = 0;
unsigned long j;
unsigned long CR = 0;

unsigned long cs;
int sec;
/////////////////////////////////

float input_voltage = 0.0;
float temp=0.0;

///////////////////////////////////

Bounce bouncer = Bounce();

void setup() {

Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 128x32)

display.display();

display.clearDisplay();

display.drawBitmap(0, 0, logo, 128, 32, WHITE);
display.display();
delay(2000);
display.clearDisplay();

TCCR1A = TCCR1A & 0xe0 | 2;
TCCR1B = TCCR1B & 0xe0 | 0x09;
analogWrite(9,22 ); // на выводе 9 ШИМ=10%

pinMode(ledPin, OUTPUT); //

pinMode (7, OUTPUT); // buzzer

pinMode(2 ,INPUT); // кнопка на пине 2
digitalWrite(2 ,HIGH); // подключаем встроенный подтягивающий резистор
bouncer .attach(2); // устанавливаем кнопку
bouncer .interval(5); // устанавливаем параметр stable interval = 5 мс

}

void loop() {

///////////////////////////////////////////////////////////////////////////////////////////////////////////////

unsigned long currentMillis = millis();
unsigned long currentMillis1 = millis();

if (bouncer.update())
{ //если произошло событие
if (bouncer.read()==0)
{ bt++;
}
}

if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
CR = bt;
bt = 0;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (bt != pbt) {
pbt = bt;
s1 = 1;
}
////////////////////////////////////////////VOLTMETER PIN A3////////////////////////////////////////////////////////////////////

int analog_value = analogRead(A3);
input_voltage = (analog_value * 5.0) / 1024.0;

if (input_voltage < 0.1)
{
input_voltage=0.0;
}

///////////////////////////////////////////////TEXT ON DISPLAY//////////////////////////////////////////////////////////////////
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(10,0);
display.clearDisplay();
display.println(CR);
display.setCursor(10,18);
display.println(bt);
display.setCursor(40,18);
display.println();
display.setTextSize(1);
display.setCursor(40,0);
display.println("mR/hr");

/////////////////////////////////////////////////BATTERY INDICATION////////////////////////////////////////////
display.drawBitmap(0, 0, fl, 128, 32, WHITE);

if (input_voltage > 3.3) {
display.drawBitmap(0, 0, bt1, 128, 32, WHITE);
if (input_voltage > 3.4) {
display.drawBitmap(0, -5, bt1, 128, 32, WHITE);
if (input_voltage > 3.5) {
display.drawBitmap(0, -10, bt1, 128, 32, WHITE);
if (input_voltage > 3.6) {
display.drawBitmap(0, -15, bt1, 128, 32, WHITE);
if (input_voltage > 3.8) {
display.drawBitmap(0, -20, bt1, 128, 32, WHITE);
}
}
}
}
}

////////////////////////////////////////////////////RADIATION ICON AND BUZZER/////////////////////////////////////////////////////////////
if (s1 == 1){
display.drawBitmap(-10, 0, lcd_bmp, 128, 32, WHITE);
digitalWrite (7, HIGH); // buzzer ON
}
else
{
digitalWrite (7, LOW); // buzzer OFF
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (currentMillis1 - previousMillis1 >= interval1) {
previousMillis1 = currentMillis1;
if (s1 == 1){
s1=0;
}
}
display.display();
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Как можете да проверите е Много просто (Въпреки че изглежда дълъг поради тези настройки за дисплея), просто трябва да направите това преобразуване от напрежението, което Arduino платката получава, към поредица от данни, които могат да бъдат заснети на екрана или дисплея.

Ако всичко е минало добре, трябва да видите информацията на екрана и шума на зумера, когато се изправяте срещу брояча на Geiger с някакъв радиоактивен източник.

Фуентес:

Инструктируеми - Направи си сам брояч Arduino Geiger

Кулинарни хакове - Брояч на Geiger: Радиационна сензорна платка за Arduino и Raspberry Pi


2 коментара, оставете своя

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Паола каза той

    Здравейте, бих искал да го направя с arduino uno и се чудех каква ще бъде схемата за монтирането му и дали нещо друго ще се промени

    1.    Isaac каза той

      Здравей Паола,
      Връзката е същата в ONE. И дори можете да промените някои връзки на други щифтове, ако предпочитате, единственото нещо, което също трябва да промените кода на скицата, за да съответства на тези, които сте поставили. Но това е същото. Уважавайте GND и Vcc връзките, а останалото, както казах, можете да го поставите в различен номер или на същия номер на вашата дъска ... (да, уважавайте цифровите и аналоговите I / O, както са на Nano дъска)
      Поздрави!