Სარჩევი:

ნიქსი ბარგრაფი საათი: 6 ნაბიჯი (სურათებით)
ნიქსი ბარგრაფი საათი: 6 ნაბიჯი (სურათებით)

ვიდეო: ნიქსი ბარგრაფი საათი: 6 ნაბიჯი (სურათებით)

ვიდეო: ნიქსი ბარგრაფი საათი: 6 ნაბიჯი (სურათებით)
ვიდეო: ნიქსი: ქართველებს მოვუწოდებთ მივიდნენ არჩევნებზე 2024, ივლისი
Anonim
ნიქსი ბარგრაფიული საათი
ნიქსი ბარგრაფიული საათი
ნიქსი ბარგრაფიული საათი
ნიქსი ბარგრაფიული საათი

რედაქტირება 9/11/17 Kickstarter– ის დახმარებით მე ახლა გამოვაქვეყნე ნაკრები ამ საათის ნაკრებისთვის! იგი მოიცავს მძღოლის დაფას და 2 Nixie IN-9 მილს. ყველაფერი რაც თქვენ უნდა დაამატოთ არის თქვენი საკუთარი Arduino/Raspberry Pi/სხვა. ნაკრები შეგიძლიათ იხილოთ, მაგრამ დააჭირეთ ამ ბმულს!

ასე რომ, მე ვნახე ბევრი ნიქსის საათი ინტერნეტში და ვფიქრობდი, რომ ისინი მშვენივრად გამოიყურებოდნენ, თუმცა მე არ მინდოდა 100 დოლარი დამეხარჯა საათზე, რომელიც არ შეიცავს მილებს! ასე რომ, ელექტრონიკის მცირე ცოდნით მე ვნადირობდი სხვადასხვა ნიქსი მილების გარშემო. და სქემები. მინდოდა რაღაც ოდნავ განსხვავებულიყო ზოგადად საკმაოდ მსგავსი ნიკის საათების ფართო სპექტრისგან. ბოლოს მე ავირჩიე Nixie IN-9 ბარგრაფიული მილების გამოყენება. ეს არის გრძელი თხელი მილები და მბზინავი პლაზმის სიმაღლე დამოკიდებულია მილების გავლით. მილის მარცხენა არის საათის ზრდა და მილის მარჯვნივ არის წუთებში. მათ აქვთ მხოლოდ ორი ლიდერი და, შესაბამისად, ქმნიან მიკროსქემის მშენებლობას უფრო პირდაპირ წინ. ამ დიზაინში არის საათი და წუთი მილაკი, რომლის პლაზმური სიმაღლეები თითოეულ მილში წარმოადგენს მიმდინარე დროს. დრო ინახება Adafruit Trinket მიკროკონტროლერის და რეალური დროის საათის (RTC) გამოყენებით.

ნაბიჯი 1: ნაწილების შეკრება

ნაწილების შეკრება
ნაწილების შეკრება

არსებობს ორი განყოფილება, პირველი ელექტრონიკა და მეორე მონტაჟი და დასრულება. საჭირო ელექტრონული კომპონენტებია: Adafruit Trinket 5V - $ 7.95 (www.adafruit.com/products/1501) Adafruit RTC - $ 9 (www.adafruit.com/products/264) 2x Nixie IN -9 bargraph 3 3 $ თითო მილზე eBay 1x Nixie 140v ელექტროენერგიის მიწოდება eBay 4x 47 uF ელექტროლიტური კონდენსატორებით 4x 3.9 kOhm რეზისტორები 2x 1 kOhm პოტენომეტრი 2x ტრანზისტორი MJE340 NPN მაღალი ძაბვა ~ 1 $ თითოეული 1x LM7805 5v რეგულატორი ~ $ 1 1x 2.1 მმ სოკეტი ~ $ 1 1x პროექტის ყუთი pc 12 ვ DC დენის წყარო (მე ვიპოვე ძველი, დიდი ხანია დავიწყებული გაჯეტიდან) გამდუღებელი, მავთული და ა. შ. საათისა და წუთების აღსანიშნავად მე გამოვიყენე სპილენძის მავთულები, რომლებიც შემოხვეული იყო მილებში. სამონტაჟო ნაწილები: ანტიკური საათის მოძრაობა - $ 10 eBay სპილენძის მავთულები - $ 3 eBay ცხელი წებოს იარაღი

ნაბიჯი 2: წრე

წრე
წრე
წრე
წრე
წრე
წრე
წრე
წრე

პირველი ნაბიჯი არის Nixie დენის წყაროს შექმნა. ეს მოვიდა როგორც პატარა პატარა ნაკრები eBay– დან, მათ შორის პატარა PCB– ით და უბრალოდ სჭირდებოდა კომპონენტები დაფაზე გასაყიდად. ეს კონკრეტული მარაგი ცვალებადია 110-180 ვ-ს შორის, კონტროლირებადია დაფაზე პატარა ქოთნით. პატარა ხრახნიანი დრაივერის გამოყენებით დაარეგულირეთ გამომავალი v 140 ვ. სანამ მთელ გზას გავაგრძელებდი, მინდოდა გამომეცადა ჩემი ნიქსი მილები, ამისთვის ავაშენე მარტივი საცდელი წრე ერთი მილის, ტრანზისტორისა და 10 კ პოტენომეტრის გამოყენებით, რომელსაც გარშემო ვდებდი. როგორც პირველ ფიგურაში ჩანს, 140 ვ მარაგი მიმაგრებულია მილის ანოდზე (მარჯვენა ფეხი). შემდეგ კათოდი (მარცხენა ფეხი) უკავშირდება MJE340 ტრანზისტორის კოლექტორის ფეხს. 5v მიწოდება უკავშირდება 10k ბანკს, რომელიც იყოფა მიწაზე ტრანზისტორის ბაზაზე. დაბოლოს, ტრანზისტორი ემისი უკავშირდება 300 ohm დენის შეზღუდვის რეზისტორს მიწასთან. თუ თქვენ არ იცნობთ ტრანზისტორებს და ელექტრონიკას, ამას ნამდვილად არ აქვს მნიშვნელობა, უბრალოდ შეაერთეთ იგი და შეცვალეთ პლაზმის სიმაღლე ჭურჭლის სახელურით! როდესაც ის მუშაობს, ჩვენ შეგვიძლია შევხედოთ ჩვენი საათის დამზადებას. საათის სრული ჩართვა ჩანს მეორე წრედის დიაგრამაში. გარკვეული კვლევის შემდეგ მე ვიპოვე სრულყოფილი სამეურვეო პროგრამა Adafruit Learn ვებსაიტზე, რომელიც აკეთებდა ზუსტად იმას, რისი გაკეთებაც მინდოდა. გაკვეთილი შეგიძლიათ იხილოთ აქ: https://learn.adafruit.com/trinket-powered-analog-m… ეს სამეურვეო იყენებს Trinket კონტროლერს და RTC– ს ორი ანალოგური გამაძლიერებლის მრიცხველის გასაკონტროლებლად. პულსის სიგანის მოდულაციის (PWM) გამოყენება ნემსის გადახრის გასაკონტროლებლად. გამაძლიერებელი მეტრის კოჭა საშუალოდ PWM- ს ახდენს ეფექტურ DC სიგნალად. თუმცა, თუ ჩვენ ვიყენებთ PWM პირდაპირ მილების გადასაყვანად, მაშინ მაღალი სიხშირის მოდულაცია ნიშნავს იმას, რომ პლაზმური ზოლი არ დარჩება მიბმული მილის ფსკერზე და გექნებათ გადასაბმელი ბარი. ამის თავიდან ასაცილებლად მე საშუალოდ გამოვიყენე PWM დაბალი გამავლობის ფილტრის გამოყენებით დიდი ხნის მუდმივით, რომ მივიღო თითქმის DC სიგნალი. მას აქვს გათიშვის სიხშირე 0.8 ჰც, ეს კარგია, რადგან ჩვენ ვაახლებთ საათის დროს მხოლოდ ყოველ 5 წამში. გარდა ამისა, ვინაიდან ბარგრაფებს აქვთ სიცოცხლის ხანგრძლივობა და შეიძლება საჭირო გახდეს გამოცვლა და ყველა მილი არ არის ზუსტად იგივე, მილის 1 კვ. ეს საშუალებას გაძლევთ შეცვალოთ პლაზმური სიმაღლე ორი მილისთვის. რეგულირების საათის დასაკავშირებლად (RCT) დაუკავშირეთ Trinket-pin 0 RTC-SDA- ს, Trinket-pin 2 RTC-SCL და Trinket-5v RTC-5v და Trinket GND RTC ადგილზე. ამ ნაწილისთვის შეიძლება სასარგებლო იყოს ადაფრუტის საათის ინსტრუქციის ნახვა, https://learn.adafruit.com/trinket-powered-analog-…. მას შემდეგ, რაც Trinket და RTC სწორად არის მიერთებული, შეაერთეთ ნიქსის მილები, ტრანზისტორები, ფილტრები და ა.

RTC და Trinket საუბრის დასაწყებად, თქვენ ჯერ უნდა ჩამოტვირთოთ სწორი ბიბლიოთეკები Adafruit Github– დან. თქვენ გჭირდებათ TinyWireM.h და TInyRTClib.h. ჯერ გვინდა მილების დაკალიბრება, ამ ინსტრუქციის ბოლოს ატვირთეთ დაკალიბრების ესკიზი. თუ არცერთი ესკიზი არ მუშაობს ბოლოს, სცადეთ ადაფრუტის საათის ესკიზი. მე შევცვალე ადაფრუტის საათის ესკიზი, რომ ყველაზე ეფექტურად ვიმუშაო ნიქსი მილებით, მაგრამ ადაფრუტის ესკიზი მშვენივრად იმუშავებს.

ნაბიჯი 3: კალიბრაცია

კალიბრაცია
კალიბრაცია

მას შემდეგ რაც ატვირთეთ კალიბრაციის ესკიზი, კურსდამთავრებული უნდა აღინიშნოს.

კალიბრაციის სამი რეჟიმი არსებობს, პირველი ადგენს ორივე ნიქსი მილს მაქსიმალურ გამომავალზე. გამოიყენეთ ეს იმისათვის, რომ ქოთანი ისე დაარეგულიროთ, რომ პლაზმის სიმაღლე ორივე მილში ერთნაირი იყოს და ის იყოს ოდნავ დაბალ მაქსიმალურ სიმაღლეზე. ეს უზრუნველყოფს, რომ პასუხი იყოს ხაზოვანი საათის მთელ დიაპაზონში.

მეორე პარამეტრი აწონასწორებს წუთის მილს. ის იცვლება 0, 15, 30, 45 და 60 წუთში ყოველ 5 წამში.

ბოლო პარამეტრი იმეორებს ამას ყოველ საათში დამატებით. ადაფრუტის საათისგან განსხვავებით, საათის მაჩვენებელი მოძრაობს ფიქსირებული ზრდით ყოველ საათში ერთხელ. ძნელი იყო ყოველ საათში წრფივი პასუხის მიღება ანალოგური მრიცხველის გამოყენებისას.

მას შემდეგ რაც დაარეგულირეთ ქოთანი ატვირთეთ ესკიზი დაკალიბრებისთვის წუთების განმავლობაში. აიღეთ თხელი სპილენძის მავთული და გაჭერით მოკლე სიგრძე. შემოახვიეთ ეს მრგვალი მილი და გადააბრუნეთ ორივე ბოლო ერთად. გადაიტანეთ იგი სწორ პოზიციაზე და ცხელი წებოს იარაღის გამოყენებით მოათავსეთ წებოს პატარა ნაჭერი, რომ შეინახოთ სწორ ადგილას. გაიმეორეთ ეს ყოველ წუთში და საათში.

დამავიწყდა ამ პროცესის ნებისმიერი სურათის გადაღება, მაგრამ ფოტოებიდან ხედავთ, როგორ არის მიმაგრებული მავთული. მიუხედავად იმისა, რომ მე გამოვიყენე ბევრად ნაკლები წებო მხოლოდ მავთულის დასამაგრებლად.

ნაბიჯი 4: მონტაჟი და დასრულება

მონტაჟი და დასრულება
მონტაჟი და დასრულება
მონტაჟი და დასრულება
მონტაჟი და დასრულება
მონტაჟი და დასრულება
მონტაჟი და დასრულება

მას შემდეგ, რაც მილები ყველა დაკალიბრდება და მუშაობს, ახლა დროა სამუდამოდ შევაკეთოთ წრე და შევაერთოთ რაიმე სახის ბაზაზე. მე ვირჩევ ანტიკურ საათის მოძრაობას, რადგან მომეწონა ანტიკური, 60 -იანი და თანამედროვე ტექნოლოგიების ნაზავი. პურის ბორტიდან გადასაღებად, იყავით ფრთხილად და მიიღეთ დრო, რათა უზრუნველყოთ ყველა კავშირის დამყარება. ყუთი, რომელიც მე შევიძინე, იყო პატარა, მაგრამ ფრთხილად განთავსებით და მცირე ძალით მოვახერხე, რომ ეს ყველაფერი მოერგო. მე გავაღე ხვრელი გვერდზე დენის წყაროსთვის და მეორე ნიქსის ლიდერებისთვის. მე დაფარული nixie მავთულები სითბოს შემცირება, რათა თავიდან ავიცილოთ ნებისმიერი shorts. როდესაც ელექტრონიკა დამონტაჟებულია ყუთში წებო მას უკან საათის მოძრაობა. მილების დასაყენებლად გამოვიყენე ცხელი წებო და გადაუგრიხეს მავთულის წერტილები ლითონზე, ფრთხილად ვიყო რომ ისინი სწორი იყოს. მე ალბათ ძალიან ბევრი წებო გამოვიყენე, მაგრამ ეს არ არის შესამჩნევი. ეს შეიძლება იყოს ის, რისი გაუმჯობესებაც მომავალში შეიძლება. როდესაც ყველაფერი დამონტაჟდება, ჩადეთ ნიქსის საათის ესკიზი ამ სასწავლო ინსტრუქციის ბოლოს და აღფრთოვანდით თქვენი საყვარელი ახალი საათით!

ნაბიჯი 5: არდუინოს ესკიზი - კალიბრაცია

#განსაზღვრეთ HOUR_PIN 1 // საათის ჩვენება PWM საშუალებით Trinket GPIO #1

#განსაზღვრეთ MINUTE_PIN 4 // წუთიანი ჩვენება PWM– ით Trinket GPIO #4 –ზე (ტაიმერის 1 ზარის საშუალებით)

int საათი = 57; int წუთი = 57; // დააყენეთ მინიმალური pwm

void setup () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // დააყენეთ PWM შედეგები

}

void loop () {// გამოიყენეთ ეს ნიქსი ქოთნების შესანახად, რათა დარწმუნდეთ, რომ მილის მაქსიმალური სიმაღლე ემთხვევა analogWrite- ს (HOUR_PIN, 255); analogWrite4 (255); // გამოიყენეთ ეს წუთიანი მატებების დასაკალიბრებლად

/*

analogWrite4 (57); // წუთი 0 დაგვიანებით (5000); analogWrite4 (107); // წუთი 15 დაყოვნება (5000); analogWrite4 (156); // 30 წუთიანი შეფერხება (5000); analogWrite4 (206); // წუთი 45 დაყოვნება (5000); analogWrite4 (255); // წუთი 60 დაყოვნება (5000);

*/

// გამოიყენეთ ეს საათების ზრდის დასაკალიბრებლად /*

analogWrite (HOUR_PIN, 57); // 57 არის მინიმალური გამომავალი და შეესაბამება დილის 1 საათში დაგვიანებას (4000); // გადაიდო 4 წამი analogWrite (HOUR_PIN, 75); // 75 არის გამომავალი, რომელიც შეესაბამება დილის 2 საათზე დაგვიანებულ საღამოს (4000); analogWrite (HOUR_PIN, 93); // 93 არის გამომავალი, რომელიც შეესაბამება დილის 3 საათამდე დაგვიანებას (4000); analogWrite (HOUR_PIN, 111); // 111 არის გამომავალი, რომელიც შეესაბამება დილის 4 საათამდე დაგვიანებას (4000); analogWrite (HOUR_PIN, 129); // 129 არის გამომავალი, რომელიც შეესაბამება დილის 5 საათამდე დაგვიანებას (4000); analogWrite (HOUR_PIN, 147); // 147 არის გამომავალი, რომელიც შეესაბამება დილის 6/საღამოს დაგვიანებას (4000); analogWrite (HOUR_PIN, 165); // 165 არის გამომავალი, რომელიც შეესაბამება დილის 7/საღამოს დაგვიანებას (4000); analogWrite (HOUR_PIN, 183); // 183 არის გამომავალი, რომელიც შეესაბამება დილის 8/საღამოს დაგვიანებას (4000); analogWrite (HOUR_PIN, 201); // 201 არის გამომავალი, რომელიც შეესაბამება დილის 9/საღამოს დაგვიანებას (4000); analogWrite (HOUR_PIN, 219); // 219 არის გამომავალი, რომელიც შეესაბამება დილის 10 საათამდე დაგვიანებას (4000); analogWrite (HOUR_PIN, 237); // 237 არის გამომავალი, რომელიც შეესაბამება დილის 11 საათამდე დაგვიანებას (4000); analogWrite (HOUR_PIN, 255); // 255 არის გამომავალი, რომელიც შეესაბამება დილის 12 საათს

*/

}

ბათილია PWM4_init () {// დააყენეთ PWM Trinket GPIO #4 (PB4, pin 3) ტაიმერის 1 TCCR1 = _BV (CS10) გამოყენებით; // წინასწარ გამყიდველი GTCCR = _BV (COM1B1) | _BV (PWM1B); // გაასუფთავეთ OC1B შედარებისას OCR1B = 127; // მოვალეობის ციკლი ინიციალიზებული 50% OCR1C = 255; // სიხშირე}

// ფუნქცია დასაშვებია analogWrite on Trinket GPIO #4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // მოვალეობა შეიძლება იყოს 0 -დან 255 -მდე (0 -დან 100%-მდე)}

ნაბიჯი 6: არდუინოს ესკიზი - საათი

// Adafruit Trinket ანალოგური მეტრიანი საათი

// თარიღი და დრო ფუნქციონირებს DS1307 RTC გამოყენებით, რომელიც დაკავშირებულია I2C და TinyWireM lib საშუალებით

// ჩამოტვირთეთ ეს ბიბლიოთეკები ადაფრუტის Github საცავიდან და // დააინსტალირეთ თქვენს არდუინოს ბიბლიოთეკების დირექტორიაში #ჩართეთ #ჩართეთ

// გამართვის, არაკომენტირებული სერიული კოდისთვის გამოიყენეთ FTDI Friend მისი RX პინით, რომელიც დაკავშირებულია Pin 3 -თან // თქვენ დაგჭირდებათ ტერმინალური პროგრამა (როგორიცაა უფასოდ PuTTY Windows- ისთვის) FTDI მეგობრის // USB პორტზე 9600 -ზე. ბაუდი გამოაქვეყნეთ სერიული ბრძანებები, რომ ნახოთ რა ხდება // #განსაზღვრეთ HOUR_PIN 1 // საათის ჩვენება PWM საშუალებით Trinket GPIO #1 #განსაზღვრეთ MINUTE_PIN 4 // წუთიანი ჩვენება PWM საშუალებით Trinket GPIO #4 (ტაიმერის 1 ზარის საშუალებით) // SendOnlySoftwareSerial Serial (3); // სერიული გადაცემა Trinket Pin 3 RTC_DS1307 rtc; // რეალურ დროში საათის დაყენება

void setup () {pinMode (HOUR_PIN, OUTPUT); // განსაზღვრეთ PWM მეტრის ქინძისთავები, როგორც გამომავალი pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // დააყენეთ ტაიმერი 1, რომ იმუშაოს PWM- ზე Trinket Pin 4 TinyWireM.begin (); // დასაწყისი I2C rtc.begin (); // დაიწყე DS1307 რეალურ დროში // // სერიული. დავიწყო (9600); // დაიწყეთ სერიული მონიტორი 9600 baud- ზე, თუ (! Rtc.isrunning ()) {//Serial.println("RTC არ მუშაობს! "); // შემდეგი ხაზი ადგენს RTC თარიღსა და დროს, როდესაც ესკიზი შედგენილია rtc.adjust (DateTime (_ DATE_, _TIME_)); }}

void loop () {uint8_t საათობრივი მნიშვნელობა, წუთიანი მნიშვნელობა; uint8_t საათობრივი ძაბვა, წუთიანი ძაბვა;

თარიღი ახლა = rtc.now (); // მიიღეთ RTC ინფორმაცია hourvalue = now.hour (); // მიიღეთ საათი, თუ (საათის ღირებულება> 12) საათის ღირებულება -= 12; // ეს საათი არის 12 საათიანი წუთი = ახლა. წუთი (); // მიიღეთ წუთი

წუთიანი ძაბვა = რუკა (წუთიანი მნიშვნელობა, 1, 60, 57, 255); // გადააკეთეთ წუთი PWM სამუშაო ციკლზე

if (საათობრივი მნიშვნელობა == 1) {analogWrite (HOUR_PIN, 57); } if (საათობრივი მნიშვნელობა == 2) {analogWrite (HOUR_PIN, 75); // თითოეული საათი შეესაბამება +18} if (hourvalue == 3) {analogWrite (HOUR_PIN, 91); }

if (საათობრივი მნიშვნელობა == 4) {analogWrite (HOUR_PIN, 111); } if (საათობრივი მნიშვნელობა == 5) {analogWrite (HOUR_PIN, 126); } if (hourvalue == 6) {analogWrite (HOUR_PIN, 147); } if (hourvalue == 7) {analogWrite (HOUR_PIN, 165); } if (საათობრივი მნიშვნელობა == 8) {analogWrite (HOUR_PIN, 183); } if (საათობრივი მნიშვნელობა == 9) {analogWrite (HOUR_PIN, 201); } if (საათობრივი მნიშვნელობა == 10) {analogWrite (HOUR_PIN, 215); } if (საათობრივი მნიშვნელობა == 11) {analogWrite (HOUR_PIN, 237); } if (საათობრივი მნიშვნელობა == 12) {analogWrite (HOUR_PIN, 255); }

analogWrite4 (წუთიანი ძაბვა); // წუთიანი ანალოგური წერა შეიძლება იგივე დარჩეს, როგორც რუქის სამუშაოები // სასურველია პროცესორის დასაძინებლად კოდი - ჩვენ დაგვიანებას (5000); // შეამოწმეთ დრო ყოველ 5 წამში. თქვენ შეგიძლიათ შეცვალოთ ეს. }

ბათილია PWM4_init () {// დააყენეთ PWM Trinket GPIO #4 (PB4, pin 3) ტაიმერის 1 TCCR1 = _BV (CS10) გამოყენებით; // წინასწარ გამყიდველი GTCCR = _BV (COM1B1) | _BV (PWM1B); // გაასუფთავეთ OC1B შედარებისას OCR1B = 127; // მოვალეობის ციკლი ინიციალიზებული 50% OCR1C = 255; // სიხშირე}

// ფუნქცია დასაშვებია analogWrite on Trinket GPIO #4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // მოვალეობა შეიძლება იყოს 0 -დან 255 -მდე (0 -დან 100%-მდე)}

გირჩევთ: