İçindekiler:

3 Kolay ATTiny Tatil Hediyesi: 4 Adım
3 Kolay ATTiny Tatil Hediyesi: 4 Adım

Video: 3 Kolay ATTiny Tatil Hediyesi: 4 Adım

Video: 3 Kolay ATTiny Tatil Hediyesi: 4 Adım
Video: Сөз чакырат, үлгү ээрчитет 2024, Kasım
Anonim
3 Kolay ATTiny Tatil Hediyesi
3 Kolay ATTiny Tatil Hediyesi

Her yıl tatil mevsimi dönüyor ve arkadaşlarım ve ailem için ne vereceğime takılıp kalıyorum. İnsanlar her zaman hediyeyi kendin yapmanın bir mağazadan satın almaktan daha iyi olduğunu söylerler, bu yüzden bu yıl tam da bunu yaptım. İlki havada sallandığında bir isim veya temel bir görüntü gösterir, ikincisi iki beyaz led arasında yumuşak bir şekilde kaybolur (Giysilere veya çantaya takmak için bir çengelli iğnesi de vardır) ve üçüncüsü bir tür ruh hali ışığıdır, kayar renkler arasında sorunsuz. Hepsi 15 doların altında ve bir saatten kısa sürede montajı kolaydır. Elektronik öğrenmekle ilgilenen birine hediye olarak bu talimatları ve parçaları da verebilirsiniz.

Not: Temel düzeyde bir lehimleme varsayılmıştır. Ancak, önceki talimatımdan farklı olarak, bir AVR'nin nasıl programlanacağına değineceğim. Umarım bu, elektroniğe başlamaya çalışan insanlara yardımcı olur. Orada olduğum zamanı hatırlıyorum ve sorularınızı almaktan mutluluk duyacağım. Unutmayın aptal soru yoktur! Çizdiğim basit devreleri göstermenin yeni bir yolunu bulacağınızı umarak devre kartınızı nasıl yerleştireceğinizi belirlemeyi size açık bıraktım. Lütfen işiniz bittiğinde resimleri gönderin, ne bulacağınızı görmek için sabırsızlanıyorum! Tüm Projelerin Parçaları N = proje sayısı x N ATTiny45 (www.digikey.com) x N 8-pin DIP soketi (RadioShack) x 1 Büyük Perf Kartı (Benimkini RadioShack'ten aldım) x N 3v Düğme Pil ve tutucu (RadioShack) x1 Programlayıcı (Bunu kullanıyorum ve verilen makefile bunu kullanacak şekilde yapılandırılacak) x2 N Dirençler, bir adet 10 ohm ve bir 10k ohm (RadioShack) İşte tamamlanmış üç projenin bir resmi:

Adım 1: İsim Flaşörü

isim Flaşör
isim Flaşör
isim Flaşör
isim Flaşör
isim Flaşör
isim Flaşör

Diğer Parçalar x5 DIFFUSED 3mm LED'ler (RadioShack) Bu proje, hızla hareket ettirildiğinde bir görüntü veya metin görüntülemek için görüş kalıcılığını kullanır. Karanlık olduğunda daha iyi çalışır. AVR ile LED'ler arasında daha hızlı geçiş yapıyoruz, o zaman göz görebiliyor, çok az bileşenle havada bir resim oluşturabiliyoruz. Kod: (Kod, makefile vb. için sayfanın en altındaki.zip dosyasını indirin. (Bu kod, bu kodun yaptığı kapsamlı yorumlara sahip değildir ancak bu kod çalışmıyorsa, aşağıdakilerden birini deneyin) zip dosyası)) #define F_CPU 1000000 #include #include void dispClear() { PORTB = ~0b00000000; } int ana() { DDRB = 0xFF; //Çift eğik çizgi bir yorumu belirtmeden önce C'yi hiç okumamış olanlarınız için. Bu, avr'ın pinlerini bir çıktı char x = 10 olarak ayarlar; //x gecikme uzunluğunu ayarlamak için kullanılır. Değeri artırmak, pikseller arasında daha yavaş bir geçiş sağlar, azalır, daha düşük while(1) //While(condition is true); {Bunu Yapın} (C'de doğru 1) { PORTB = ~0b00010001; //Arkadaşımın adı Zoe, bu yüzden karakterleri grafik kağıdına çizdim ve sonra onları PORTB'ye yükledim. İlk üç sıfır önemli değil çünkü bağlı sadece beş led var. Kalan beş boşluktan birinde bir, LED'in açık, sıfır, kapalı olduğunu gösterir. _delay_ms(x); //milisaniye cinsinden gecikme PORTB = ~0b00010011; _delay_ms(x); PORTB = ~0b00010101; _delay_ms(x); PORTB = ~0b00011001; _delay_ms(x); PORTB = ~0b00010001; _delay_ms(x); dispClear(); //karakterler arasında boşluk bırakın _delay_ms(x); PORTB = ~0b00001110; _delay_ms(x); PORTB = ~0b00010001; _delay_ms(x*3); PORTB = ~0b00001110; _delay_ms(x); dispClear(); _delay_ms(x); PORTB = ~0b00011111; _delay_ms(x); PORTB = ~0b00010101; _delay_ms(x); PORTB = ~0b00010001; _delay_ms(x); dispClear(); _delay_ms(x*5); //Kelime netlik için yapılmıştır, kelimeler arasında daha büyük bir boşluk var } } Şimdi bu kodu derlemek ve AVR'nize göndermek için 4. sayfadaki talimatları izleyin.

Adım 2: Çanta Işığı

Çanta Işık
Çanta Işık
Çanta Işık
Çanta Işık

Diğer Parçalar x2 LED'ler DAĞITILMAMIŞ (RadioShack) Bu proje iki LED arasında sorunsuz bir şekilde söner. Annem, gece arısının görülmesine yardımcı olmak için çantasına bir şey koymak istedi. Yanıp sönen bir bisiklet ışığının çok fazla dikkat çekeceğini hissettim, bu yüzden bunu yaptım. Karartma ve aydınlatma efekti vermek için PWM (Darbe Genişlik Modülasyonu) kullanır. Gerçekte olan şey, bir değişikliği simüle etmek için ledin değişen aralıklarla gözün görebileceğinden daha hızlı yanıp sönmesidir. Name Flasher'da olduğu gibi yüzünüze doğru salladığınızda bunu daha net görebilirsiniz. Kod bu sayfanın sonunda indirilebilir. AVR'nizi nasıl derleyeceğiniz konusunda 4. sayfaya bakın. Buradaki kodu yorumlamak yerine kavramı kısaca açıklayacağım. PWM bir zamanlayıcı tarafından üretilir. Her saat döngüsü, zamanlayıcı bir tane sayar. Belirli bir değere ulaştığında (Bu durumda OCR1B) bir pinin durumunu değiştirir (Bu durumda OC1B). LED'leri "kapatmak" için diğerini [KARŞI]OC1B'ye bağladım (üstteki çubuğun anlamı budur). Ardından, LED'lerin açık kalacağı süreyi artırmak ve azaltmak için x'i kullanırız.

3. Adım: Renk Kaydırıcı

Renk Kaydırıcı
Renk Kaydırıcı
Renk Kaydırıcı
Renk Kaydırıcı

Diğer Partsx1 RGB LED (dağıtılmış daha iyidir) (RadioShack) Bu benim için bir klasik. Böyle ışıklardan her zaman etkilenmişimdir ve onları çok sakinleştirici buluyorum, o yüzden doğal olarak bir tane yapmak istedim. Ayrıca toplumdaki görünürlükleri onlara gerçek bir WOW faktörü verir. "Bunu sen mi yaptın?!" Kod neredeyse aynı ve bence okunması daha kolay. Alt kısımdan indirebilirsiniz. Bu sefer RGB LED üzerindeki her topraklama pimi için bir PWM'd pimi sağlıyoruz. Bu şekilde çipi topraklıyoruz. Volt, iki nokta arasındaki fark olarak ölçülebilir. 3v-0v=3v 5v-2v=3v ***3v-3v=0v*** Bu son örnek, çipi toprakladığımızda yaptığımız şeydir. Her iki tarafta üç volt olduğunda, diyelim ki, bir LED'i sürmek için yeterli volt yoktur. Bu yüzden renkler arasında solmak için bir renk ve başka bir renk seçtik. Birini x'e, diğerini 255-x'e veya x'in TERSİNE eşit olarak ayarlayın. Bir önceki projede yaptığımız gibi. Şimdi programlamak için 4. adıma gidin.

Adım 4: Programlama

Programlama
Programlama

Önce Emacs, avr-gcc ve Avrdude'yi ve sahip olabilecekleri bağımlılıkları indirip yükleyin. Arch linux'ta bunu şununla yaptım: sudo pacman -Sy emacs avrdude

Şimdi programlayıcınızı avr'nize bağlamanın zamanı geldi. 6-pinli ISP programlayıcıdaki (aşağıdaki resim) pimleri AVR'nizdeki (Veri Sayfası, sayfa 2) (Bunu bir devre tahtasında yaptım) birlikte gelen pimlere bağlayın. Şimdi programlayıcıyı bilgisayarınıza takın ve AVR'nin üstüne ÇOK HIZLI bir şekilde dokunun. Eğer sıcaksa, PROGRAMLAYICIYI BİR KEZ BİLGİSAYARINIZDAN KALDIRIN, bağlantılarınızı kontrol edin ve tekrar deneyin (Güç ve Gnd ters mi?). Sıcak değilse, emacs'ı açın ve.c dosyasını bulmak için Ctl-x Ctl-f'ye basın. Açın ve ardından Meta(Genellikle Alt)-x tuşlarına basın ve derleme yazın. Enter tuşuna iki kez basın ve eğer şanslıysanız AVR'niz şimdi kodunuzu çalıştırıyor olmalı! Okuduğunuz için teşekkürler! Umarım beğenmişsinizdir ve bir şeyler öğrenmişsinizdir. Lütfen soru sormaktan çekinmeyin ve aklınıza gelenlerin fotoğraflarını paylaşmayı unutmayın. İyi bayramlar, oy vermeyi unutmayın!

Önerilen: