İçindekiler:
- Adım 1: Adım 1: Konteyner Dışındaki Devreyi Lehimleme ve Bağlama
- Adım 2: Adım 2: Kodu Yükleme ve İhtiyaçlarınıza Göre Ayarlama
- Adım 3: Adım 3: Dilerseniz Stepper'ları ve Arduino'yu İçeri Alın
Video: Step Pomodoro Zamanlayıcı: 3 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
Stepper Pomodoro, her çalışma dönemini 30 dakikalık bölümlere ayırarak kişinin günlük görev listesini yönetmesine yardımcı olan bir masa sayacıdır. Ancak normal bir Pomodoro zamanlayıcısının aksine kalan süreyi göstererek sizi endişelendirmiyor. Bunun yerine, yaklaşık olarak üç kadrandan hangisinin tıklandığını gösterir. Tam zamanı göstermeyerek, kalan zamanınızı sürekli kontrol etmek yerine gerçekten eldeki göreve odaklanmanızı sağlar. Bu Pomodoro, görev yönetiminde hafif ve göze batmayan bir yapıya ihtiyaç duyanlar için mükemmeldir.
Aletler
• Havya
• Tel sıyırıcılar
• Lazer kesici (veya zamanlayıcının kadranlarını nasıl oluşturmak istediğinize bağlı olarak zımpara)
• Matkap (kadranlar için yeterince büyük delikler açmak için bir matkap presi kullandım)
Malzemeler
• 1 Arduino Uno
• 1 yarım boy breadboard
• 3 H köprüler (DRV8833 kullandım, bir motor kalkanı wold bana biraz zaman ve baş ağrısı kazandırdı)
• 3 Step motor (NEMA 17 step kullandım)
• 1 Düğme
• 1 220-1K ohm direnç (aralık içindeki herhangi biri iyidir)
• AC/DC adaptörü (12V kullandım, muhtemelen bu miktardaki stepper için çok büyük)
• Güç ayırıcı
• USB A-B kablosu
• Breadboard kabloları
• Lehim
• Zamanlayıcı kabı için malzemeler
• Kadranlar için akrilik
• Zamanlayıcının sabit kolu olarak işlev görecek çiviler veya metal pimler
Adım 1: Adım 1: Konteyner Dışındaki Devreyi Lehimleme ve Bağlama
Bu adım için tüm H köprülerimi lehimleyerek başladım (motor kalkanını satın alırsanız bunları lehimlemeniz gerekmez. Her adım için bir H köprüsünüz olduğunda, adımlarınızın nasıl kablolandığını kontrol edebilirsiniz.
NEMA 17'ler bipolar step motorlar olarak bilinirler, yani motor içinde, motorun hassas hareketine izin vermek için polariteyi değiştiren iki (bir yerine) bobin grubuna sahiptirler. Bipolar stepperlerin normalde dört kablosu vardır ve Polar stepperlerin normalde altı kablosu vardır, bu çevrimiçi talimatları biraz karmaşıklaştırdı. Ancak iki kabloya bir multimetre bağlayabilir ve bağlı olup olmadıklarını görebilirsiniz. NEMA 17 stepperlerin kablo sırası KIRMIZI, SARI, GRİ, YEŞİL renk sırasına sahiptir, kırmızı ve gri ilk kutup çifti ve sarı ve yeşil ikinci kutup çiftidir. Herhangi bir noktada step, beklenen hareketi tamamlamak yerine seğirmeye başlarsa, kablolarınızın bir şekilde ikizlerine doğru polarize olmaması veya birinin bağlantısının kesilmesi ihtimali vardır. Her adım, DRV8833 H köprülerine bağlanan dört çıkış pimi aracılığıyla kontrol edilir. DRV8833'e giriş için kablolama sırası: IN1, IN2, Power, Ground, IN3, IN4. Çıkış amaçları için NEMA, altı pimin orta dördüne şu sırayla bağlanır: KIRMIZI, GRİ, SARI, YEŞİL. Şimdi gücü bağlayalım. NEMA'larım 2-13 arasındaki dijital bağlantı noktalarında var.
Buna güç sağlamak için hem Arduino'ya hem de tüm steplere güç sağlayabilmek için ayırıcılı bir 12V AC/DC adaptör satın aldım. UYARI: Bağlantı noktasından zaten güç alan Arduino'dan gelen güç ve topraklama kablolarınızı AC/DC'den doğrudan güç alan devre tahtasına bağlamayın. Tahtanızı kızartacak. Duvara takılan 12V adaptörden ayırıcının bir kısmı doğrudan Arduino'nun portuna, diğeri ise breadboard'un pozitif ve negatifine gitti.
Son olarak, düğmeyi bağlamanın zamanı geldi. Düğmenin bir tarafı hem güce (direncimiz eklenmiş olarak) hem de lehimlenmiş çıkış pimine ihtiyaç duyacaktır (bu, devre tahtasından da yapılabilir). Diğer pin bizim topraklamamız olacak. Bu üç kablo şuna takılmalıdır: 5V'a dirençli güç, A0'a çıkış ve hepsini Arduino Uno kartının kendisinde topraklamak için topraklayın.
Buradan, burada bulunan bu temel step test kodunu kullanarak stepperleri kontrol etmeyi deneyebilmeliyiz. Arduino.cc'deki bu açıklama, ihtiyacınız varsa, bi/unipolar stepperlerin daha kapsamlı bir açıklamasını da yapar. Şimdi Pomodoro'nun koduna girelim!
Adım 2: Adım 2: Kodu Yükleme ve İhtiyaçlarınıza Göre Ayarlama
Pomodoro'mun düğmeli kodu aşağıdadır, kurulumunuza göre özelleştirmek için aşağıdaki adımları izleyin:
1. Kişisel stepper tipinizin devir başına kaç adıma sahip olduğunu ayarlayın (NEMA 17'lerde 200 vardır ve stepPerRevolution adı verilen sabit tamsayıda listelenir).
2. Sabit tamsayılı arayan buttonPin'de düğmenizin nereye giriş yapacağını ayarlayın.
3. Adımlayıcılara komut vermek için arduino'nuzun nereden çıktı alması gerektiğini ayarlayın (bu parçalar, kullandıkları farklı kitaplıklara sahip olduklarından, bu parçalar en çok H köprü türleri arasında değişebilir).
4. Adım hızını.setSpeed'de RPM olarak ayarlayın (benimki saat yönünde dönerken 1 rpm ve saat yönünün tersine dönerken 30 rpm olarak ayarladım).
5. Adım adımlarınızın her birinin hareket etmeden önce kaç kez dönmesini istediğinizi ayarlayın (stepper'larım on dakika sayıyor, bu nedenle 1 RPM'de on kez dönüyorlar).
6 Ne kadar süre geriye dönmesini istediğinizi ayarlayın.
#Dahil etmek
const int stepPerRevolution = 200; // step motorlarımın her tam devrinde kaç adım olduğuna dair sabit ayar
const int buttonPin = A0; // buton girişimin sabitini ayarlama
Step ilkStepper(stepsPerRevolution, 2, 3, 4, 5); // belirli pinlerde step kütüphanesini başlat
Adım saniyeStepper(stepsPerRevolution, 6, 7, 8, 9); Step üçüncüStepper(stepsPerRevolution, 10, 11, 12, 13); Stepper ilkStepperBack(stepsPerRevolution, 2, 3, 4, 5); // bu pinler üzerindeki step kütüphanesini yeniden başlatarak rpm'yi sıfırlayabilir ve bu sürenin dolduğunu bildirdiğinde Stepper secondStepperBack(stepsPerRevolution, 6, 7, 8, 9); Stepper üçüncüStepperBack(stepsPerRevolution, 10, 11, 12, 13);
int dakikaSayaç = 0; // int steplerin tam devirlerini sayma
int timerState = DÜŞÜK; // pomodoro zamanlayıcının mevcut durumu (HIGH = on, LOW = off/reset) int buttonState; // giriş pininden geçerli okuma int lastButtonState = HIGH; // giriş pininden önceki okuma
// aşağıdaki değişkenler işaretsiz uzunlardır çünkü süre, milisaniye cinsinden ölçülür, // hızla bir int'de depolanabilecek olandan daha büyük bir sayı olacak. imzasız uzun lastDebounceTime = 0; // çıkış pininin en son değiştirildiği zaman unsigned long debounceDelay = 50; // geri dönme zamanı; çıkış titriyorsa artırın
geçersiz kurulum() {
pinMode(buttonPin, INPUT_PULLUP); // buton sabitini girdi olarak ayarla
firstStepper.setSpeed(1); // her adımda 10 dakika saymak için hızı 1 rpm'ye ayarlayınStepper.setSpeed(1); üçüncüStepper.setSpeed(1); firstStepperBack.setSpeed(30); // Pomodoro'nun ikinciStepperBack.setSpeed(30) işlemini tamamladıktan sonra sürenin dolduğunu bildirmek için hızı 30 rpm'ye ayarlayın; üçüncüStepperBack.setSpeed(30);
Seri.başla(9600); // seri monitörü 9600 baud hızıyla başlat
}
boşluk döngüsü () {
// anahtarın durumunu yerel bir değişkene oku: int read = digitalRead(buttonPin);
// düğmeye basıp basmadığınızı kontrol edin
// (yani giriş DÜŞÜK'ten YÜKSEK'e gitti) ve son basıştan beri herhangi bir gürültüyü yok saymak için // yeterince beklediniz:
// Gürültü veya basma nedeniyle anahtar değiştiyse:
if (okuma != lastButtonState) { // geri dönme zamanlayıcısını sıfırlayın lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) { // okuma değeri ne olursa olsun, geri dönme gecikmesinden // daha uzun süredir oradadır, bu yüzden onu gerçek mevcut durum olarak alın:
// düğme durumu değiştiyse:
if (okuma != buttonState) { buttonState = okuma;
// sadece yeni düğme durumu basıldığını gösteriyorsa zamanlayıcı aktivasyonunu değiştir
// açmak için bir kez basın, kapatmak için tekrar basın if (buttonState == LOW) { timerState = !timerState; Serial.print("Zamanlayıcı Durumu "); Serial.println(timerState); } } }
if (timerState == YÜKSEK) {
Serial.println("Pomodoro zamanlayıcı başladı"); if (dakikaSayacı < 11) { //eğer mevcut ikinci değer önceki değerden farklıysa firstStepper.step(stepsPerRevolution); // stepi çevir 200 adım/1 devir dakikaSayaç++; Serial.print("dakikaSayacı"); Serial.println(dakikaSayaç); }
if (11 <= dakikaSayacı && DakikaSayacı < 21) { //geçerli ikinci değer önceki değerden farklıysa ikinciStepper.step(stepsPerRevolution); // stepi çevir 200 adım/1 devir dakikaSayaç++; Serial.print("dakikaSayacı"); Serial.println(dakikaSayaç); }
if (21 <= dakikaSayacı && DakikaSayacı < 31) { //geçerli ikinci değer önceki değerden farklıysa üçüncüStepper.step(stepsPerRevolution); // stepi çevir 200 adım/1 devir dakikaSayaç++; Serial.print("dakikaSayacı"); Serial.println(dakikaSayaç); }
if (31 <= dakikaSayaç && dakikaSayaç < 1031) { //geçerli ikinci değer önceki değerden farklıysa o zaman firstStepperBack.step(-1); // stepper'ı sırayla 1 adım geri çevirerek hepsi aynı anda çalışıyor gibi görünecek saniyeStepperBack.step(-1); üçüncüStepperBack.step(-1); dakikaSayaç++; Serial.print("dakikaSayacı"); Serial.println(dakikaSayaç); } } else { Serial.println("Pomodoro zamanlayıcı kapalı"); } // okumayı kaydet. Döngü boyunca bir sonraki sefer // bu lastButtonState olacaktır: lastButtonState = okuma; }
Adım 3: Adım 3: Dilerseniz Stepper'ları ve Arduino'yu İçeri Alın
Saatim için paralelkenar bir form oluşturmayı seçtim. Kırmızı meşenin bu formu ve malzeme seçimleri, orta çağdaki modern mobilyalardan ilham almıştır. En çok zorlandığım kısımlardan biri de kadranlı stepperleri lombozlardan görülebilecek şekilde yerleştirmekti.
Önerilen:
Step Motor Kontrollü Model Lokomotif - Döner Enkoder Olarak Step Motor: 11 Adım (Resimlerle)
Step Motor Kontrollü Model Lokomotif | Döner Kodlayıcı Olarak Adım Motoru: Önceki Talimatlardan birinde, bir step motorun döner kodlayıcı olarak nasıl kullanılacağını öğrendik. Bu projede, şimdi bir Arduino mikrodenetleyici kullanarak bir model lokomotifi kontrol etmek için step motorlu döner kodlayıcıyı kullanacağız. Yani, fu olmadan
Lazer Projeksiyon Pomodoro Zamanlayıcı: 5 Adım
Lazer Projeksiyon Pomodoro Zamanlayıcı: Karantina sırasında herkese evlerinden merhaba. Umarım bu talimat bu günleri atlatmanıza yardımcı olur. Bu yüzden evde ders çalışmak için pomodoro tekniğini kullanıyorum. Pomodoro tekniğinin ne olduğunu bilmeyenler için
Step Motor Kontrollü Step Motor - Döner Enkoder Olarak Step Motor: 11 Adım (Resimlerle)
Step Motor Kontrollü Step Motor | Döner Kodlayıcı Olarak Step Motor: Etrafta duran ve bir şeyler yapmak isteyen birkaç step motor var mı? Bu Eğitilebilir Tabloda, bir Arduino mikro denetleyici kullanarak başka bir step motorun konumunu kontrol etmek için döner kodlayıcı olarak bir step motor kullanalım. O halde lafı fazla uzatmadan geçelim
D Flip Floplu ve 555 Zamanlayıcılı Step Motor; Devrenin İlk Parçası 555 Zamanlayıcı: 3 Adım
D Flip Floplu ve 555 Zamanlayıcılı Step Motor; Devrenin İlk Parçası 555 Zamanlayıcı: Step motor ayrık adımlarla hareket eden bir DC motordur.Yazıcılarda ve hatta robotiklerde sıklıkla kullanılır.Bu devreyi adım adım anlatacağım.Devrenin ilk kısmı 555'tir. zamanlayıcı. 555 çipli ilk görüntü (yukarıya bakın)
Pomodoro Zamanlayıcı Met LED Yüzük: 5 Adım
Pomodoro Timer Met LED Ring: Pomodoro timer gemaakt için ITTT-project heb een variatie op een. De Pomodoro "teknik"; En iyi yönetim yöntemidir. Hierbij