Konyhai időzítő projekt

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Avatar
glezmen
Bitmanipulátor
Hozzászólások: 139
Csatlakozott: 2012. augusztus 9. csütörtök, 6:00

Hozzászólás Szerző: glezmen »

kapcsolo es speaker mikor lesz? :)

osszeraktam a protoshieldet, a nyolc leddel es ellenallassal
csak ketszer sikerult elcseszni kozben:

1) az elso tusort fejteton (a nyak tetejere az alja helyett) forrasztottam, es persze ez csak a nyolcadik tunel esett le, eleg jo melo volt mire sikerult kiszedni :D

2) az elso ellenallasnak nem a kicsiket, hanem a nagyot raktam :-/

a kapcsoloval es a hangszoroval mar rengeteg mindent tudnek csinalni (pl konyhai timer)
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Nyomógombok 10. lecke
Hangkeltés 20. lecke

Te most hól tartasz?

Tüskesor kiszedése.
Alányúlsz a műanyag szigetelőnek valami vékony szerszámmal. És némi feszegetéssel lehúzod a tüskékről. Utána már egyenként kiszedhetőek. Ha ügyes vagy még vissza is dugdoshatod őket.
De inkább a tüskék vesszenek, mint a nyáklap!
:)
Avatar
glezmen
Bitmanipulátor
Hozzászólások: 139
Csatlakozott: 2012. augusztus 9. csütörtök, 6:00

Hozzászólás Szerző: glezmen »

kapu48 írta:Nyomógombok 10. lecke
Hangkeltés 20. lecke

Te most hól tartasz?

Tüskesor kiszedése.
Alányúlsz a műanyag szigetelőnek valami vékony szerszámmal. És némi feszegetéssel lehúzod a tüskékről. Utána már egyenként kiszedhetőek. Ha ügyes vagy még vissza is dugdoshatod őket.
De inkább a tüskék vesszenek, mint a nyáklap!
:)
igen, en is kb igy szedtem ki, a forrasztasok eltavolitasaval eleg rendesen megszenvedtem, de sikerult :)

most a futofenyes leckenel vagyok, akkor nemsokara jon a nyomogomb
gondoltam ra hogy felrakom a panelra, de nem akarom hogy a kesobbi leckeknek bekavarjon, akkor inkabb varok
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

http://avr.tavir.hu/modules.php?name=Fo ... forum&f=34

Itt vannak a kb. témák. A leckeszámokkal úgy-ahogy már kiegészítve...
Avatar
glezmen
Bitmanipulátor
Hozzászólások: 139
Csatlakozott: 2012. augusztus 9. csütörtök, 6:00

Hozzászólás Szerző: glezmen »

Robert írta:http://avr.tavir.hu/modules.php?name=Fo ... forum&f=34

Itt vannak a kb. témák. A leckeszámokkal úgy-ahogy már kiegészítve...
koszi!

idokozben raktam meg a protoshieldre egy kis piezo hangszorot (volt itthon egy oreg, gondoltam ha kinyirom az sem baj :D), es a nyolc leddel kombinalva remek konyhai idozitot csinaltam :D
kis szepseghiba hogy soros portrol varja az inditast (a percek megadasaval), mivel nincs rajta potmeter/kapcsolo, de ezt leszamitva popecul mukodik :)
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Gratulálok az első sikeres projectedhez!

Így szokott ez lenni, az első probléma megoldása hozza a következő feladatott.

Szívesen látnánk majd valami részletesebb tájékoztatást is!
Esetleg pár képet, videót valahol.
:)
Avatar
macsek
Bitmanipulátor
Hozzászólások: 121
Csatlakozott: 2008. december 4. csütörtök, 7:00

Hozzászólás Szerző: macsek »

glezmen írta:idokozben raktam meg a protoshieldre egy kis piezo hangszorot (volt itthon egy oreg, gondoltam ha kinyirom az sem baj :D), es a nyolc leddel kombinalva remek konyhai idozitot csinaltam :D
kis szepseghiba hogy soros portrol varja az inditast (a percek megadasaval), mivel nincs rajta potmeter/kapcsolo, de ezt leszamitva popecul mukodik :)
Gratulálok! Tök jó kezdet.
glezmen írta:akkor nemsokara jon a nyomogomb
gondoltam ra hogy felrakom a panelra, de nem akarom hogy a kesobbi leckeknek bekavarjon, akkor inkabb varok
Nem kell emiatt várnod, sztem nyugodtan tehetsz rá gombokat. Ha elég nagy ellenállást teszel oda (mondjuk 10k-100k között vmit) akkor nem fog semmibe beleszólni később. Ha meg mégsem tetszik ott, akkor legföljebb kiszeded az ellenállást és ha nem nyomkodod akkor olyan, mintha ott sem lenne.

Bekötés:
+ 5V --------- ellenállás --------- leágazás -----nyomógomb -------- föld (GND)
a leágazásra pedig a panel D2..D12 csatlakozópontjai közül valamelyik, ami szimpatikus.

Gondolom egyértelmű, hogy ez a bekötés 0-t (LOW) ad a gomb lenyomott állapotánál és 1-et (HIGH) amikor nem nyomjuk. Lehetne másképp is, de ez az, ami nem szól bele a működésbe később. (Mert nem emeli meg a földet)

Ha jól emléxem a D2, D3, D12 nem volt eddig semmire sem használva a tanfolyami anyagban.
(Robert: jó tipp vagy inkább máshová tegye, mert később útban lesz?)
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Szabadon teheti. Sőt: a LED-es lábakkal paralell is berakható a nyomógomb. Hisz egy láb vagy kimenet vagy bemenet. Egyszerre a kettő macerás (de megoldható :) ).

És a visszaszámlálásig szükséges időt binárisan jelzi vissza? Amolyan bináris óra lesz?

Hasonló SirLeslie projektjéhez?
http://users.atw.hu/sirleslie/projektek ... index.html


D2/D3 az INT láb, oda semmit nem raknék.
Avatar
glezmen
Bitmanipulátor
Hozzászólások: 139
Csatlakozott: 2012. augusztus 9. csütörtök, 6:00

Hozzászólás Szerző: glezmen »

koszi a gratulaciokat :)
idokozben megjott a kilencedik lecke, benne a gombbal :D

a hatralevo idot nem binarisan jelzi ki, hanem a nyolc leddel siman, 'sorosan'

pl. ha beallitod 5 percre, akkor az elso 4 led folyamatosan eg, az otodik villog, es igy megy szepen lefele. mikor 0-hoz er, akkor meg 5x1mp-et sipol

persze igy csak max 8 percrol tud visszaszamolni, de tanulgatni ez is eleg, aztan majd idovel ugyis akarok csinalni egy normalisat, 7 szegmenses, 2 vagy 4 digites kijelzovel, gombokkal vagy potmeterrel

na de a kapcsoloval egybol felhasznalobaratabb lesz, azt mar a Zasszony is fogja tudni hasznalni :)

a hangszorot a 11-es labra kotottem, ott ugy tunik nincs utban, ha megis, akkor pillanatok alatt le tudom szedni

ez a funyiros km-szamlalo nagyon jo, de az en tudasomtol meg nagyon messze van, pedig nem is jonne rosszul, az en udvarom is Qrva nagy :D

MOD: itt a forras. nem tul szep, de mukodik :D

Kód: Egész kijelölése

const byte speakerpin = 11;
unsigned long  target = 0;

enum states {WAITING, COUNTING, ALARM} state = WAITING;

void setup()
{
  Serial.begin(9600);
  pinMode(speakerpin, OUTPUT);
  for (int i=0; i<8; ++i)
  {
    pinMode(i, OUTPUT);
    digitalWrite(i,LOW);
  }
}

void loop()
{
  switch (state)
  {
    case WAITING:
	  if (Serial.available())
	  {
		int mins = Serial.read() - '0';
		if (mins > 0 && mins < 9)
		{
		  target = millis() + mins * 60000;
		  state = COUNTING;
		  Serial.print("starting timer with ");
		  Serial.print(mins);
		  Serial.println(" minutes");
		  Serial.end();
		}
		else
		  Serial.println("Number must be between 1 and 8 minutes!");
	  }
      break;
    
    case COUNTING:
      {
        int mins = (target - millis())/60000;
        for (int i=0; i<8; ++i)
          digitalWrite(i, i+1 <= mins);
        digitalWrite(mins, (millis()%2000) > 1000);
        if (millis() > target)
          state = ALARM;
      }
      break;
     
    case ALARM:
      for (int i=0; i<8; ++i)
        digitalWrite(i, HIGH);
      for (int i=0; i<5; ++i)
      {
        while (millis() - target < 2000)
        {
          digitalWrite(speakerpin, HIGH);
          delayMicroseconds(500);
          digitalWrite(speakerpin, LOW);
          delayMicroseconds(500);
        }
        delay(1000);
        target = millis();
      }
      for (int i=0; i<8; ++i)
        digitalWrite(i, LOW);
      state = WAITING;
      Serial.begin(9600);
      break;
  }
}
de nem akarom szetoffolni a topicot (bar mar keso :roll: ), inkabb keresek egy 'kezdo' temat (lattam van is egy, bar mar nagyon regota alszik), lenne ugyis par nagyon amator kerdesem...
A hozzászólást 2 alkalommal szerkesztették, utoljára glezmen 2012. augusztus 20. hétfő, 11:58-kor.
Avatar
macsek
Bitmanipulátor
Hozzászólások: 121
Csatlakozott: 2008. december 4. csütörtök, 7:00

Hozzászólás Szerző: macsek »

Köszi a választ.
Robert írta:D2/D3 az INT láb, oda semmit nem raknék.
Vagy pont azért ;)
Elemkímélésre pont jó lehet. (Persze nem egy tesztprogramnál, de egy megvalósított projektnél.)

MOD: de jó, lett szerkeszt gomb! Köszönjük.
Avatar
glezmen
Bitmanipulátor
Hozzászólások: 139
Csatlakozott: 2012. augusztus 9. csütörtök, 6:00

Hozzászólás Szerző: glezmen »

felforrasztottam a mikrokapcsolot a panelra, igy mar egy szinte hasznalhato idozitom lett :)

nyomogomb lehuzoellenallassal a 13-as pinen, speaker a 11-esen, a nyolc LED meg 0-7-en

a mukodese eleg egyszeru: a gomb megnyomasara +1 percet lep elore es elkezdi a visszaszamolast (8 perc felett tulcsorul, es 0-rol kezd megint)

Kód: Egész kijelölése

const byte buttonpin  = 13;
const byte speakerpin = 11;
unsigned long  target = 0;

enum states {WAITING, COUNTING, ALARM} state = WAITING;

void setup()
{
  pinMode(speakerpin, OUTPUT);
  pinMode(buttonpin, INPUT);
  for (int i=0; i<8; ++i)
  {
    pinMode(i, OUTPUT);
    digitalWrite(i,LOW);
  }
}

byte checkButton(byte wanted)
{
  if (digitalRead(buttonpin) != wanted)
    return 0;
  delay(5);
  return digitalRead(buttonpin) == wanted;
}

void loop()
{
  static byte pressed = 0;

  delay(10);
  if (!pressed && checkButton(HIGH))
  {
      int n = target < millis() ? 1 : ((((target - millis())/60000)+1) %8) + 1;
      target = millis() + n * 60000;
      digitalWrite(n,HIGH);
      state = COUNTING;
      pressed = 1;
  }
  if (pressed && checkButton(LOW))
      pressed = 0;

  switch (state)
  {
    case WAITING:
      break;
    
    case COUNTING:
      {
        int mins = (target - millis())/60000;
        for (int i=0; i<8; ++i)
          digitalWrite(i, i+1 <= mins);
        digitalWrite(mins, ((target-millis())%2000) > 1000);
        if (millis() > target)
          state = ALARM;
      }
      break;
     
    case ALARM:
      for (int i=0; i<8; ++i)
        digitalWrite(i, HIGH);
      for (int i=0; i<10000; ++i)
      {
          digitalWrite(speakerpin, !(i%2));
          delayMicroseconds(500);
      }
      for (int i=0; i<8; ++i)
        digitalWrite(i, LOW);
      state = WAITING;
      break;
  }
}
ha megjon a 9V-os elemes kis adaptercsatlakozom akkor akar mar onalloan is mukodokepes lesz :)

ezzel kapcsolatban meg egy kerdes:

ha az osszerakott kis projectemet (nem feltetlenul ezt :D) szeretnem 'veglegesiteni', hogy aztan onalloan hasznalhato legyen, akkor mi kell nekem?

eloszor is ugye nem akarom a komplett Arduino lapot felhasznalni. egy ilyen kis programocska elferne egy sokkal kisebb chipen is (most tekintsunk el a 10 felhasznalt pintol, mondjuk hogy 4-5 pin eleg). ha jol olvastam, akkor pl. az ATTiny45 is kepes lenne arra amire nekem kell
vagyis ha veszek egy ilyen kis IC-t, akkor gondolom kell hozza egy programozo. hogyan tudom az egyelore forraskod szinten mukodo kis programocskamat belegyomoszolni?

majd ha mar belegyomoszoltem, es mondjuk egy 'csupalyuk' panelen osszerakom a cuccost, akkor ugye kellene neki tap is. hogy tudom egyszeruen biztositani neki a szukseges betapot? felteszem egy 9V-os elem a megfelelo kis 'madzaggal' rajta elso lepesnek jo. de akkor kellene meg melle valami feszultsegszabalyzo fele is, ugye?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Maradjunk az Arduinonál. Lasd első lecke:
ATMega8, ATMega168 és ATMega328 chipre készült.
Egyéb híresztelésnek NE higyj, mert a függvények és eljárásokat _nem_ implementálták másik chipre.

Programozó: STK200, MKII, STK500 jöhet szóba.
DE: ha nagyon előreszaladsz, akkor csak bosszúság és pénzkidobás lesz. Arduino alatt ha programozol: ATMega8 chipnél maradj - ezesetben.
Tipp, ha van Arduinod - van programozód: http://avr.tavir.hu/modules.php?name=Co ... ge&pid=158

Arduino kapcsolási rajzot nézd meg.
Mega8 helyett 3 db ceruzaelemre szavaznék. A 7805 szabályzó elfűti a felesleget. Elem esetén nem kell ilyen!

Az Arduino lapka helyettesítése a 35. lecke körül lesz. Javaslat: várd meg.
Avatar
glezmen
Bitmanipulátor
Hozzászólások: 139
Csatlakozott: 2012. augusztus 9. csütörtök, 6:00

Hozzászólás Szerző: glezmen »

mar megintcsak koszonom :)
annyira nem surgos, csak kivancsi vagyok (mar a suliban is mindig ez volt a bajom, folyton az erdekelt, ami majd 2-3 ev mulva lesz tananyag :D), szoval a 35. leckeig varok, addig ugysem lesz aktualis

az Arduino mint programozo nagyon jo, raadasul gazdasagos is :D

a harom ceruzaelem stabilan elviszi az Arduinot?
abban az esetben meg szabalyzo sem kell, csak rakotom a chip megfelelo labara a sorosan kotott elemeket es kesz?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Igen. Arduino (ATMega) tápfesz 2.7V...5V.
A 3 elem meg 3.6 vagy 4.5V :)


Lehet előre ötletelni, csak ha átlépsz 4-5 lépést, akkor _sokkal_ több lesz a buktató. Látszólagosan.
Avatar
macsek
Bitmanipulátor
Hozzászólások: 121
Csatlakozott: 2008. december 4. csütörtök, 7:00

Hozzászólás Szerző: macsek »

glezmen írta:felforrasztottam a mikrokapcsolot a panelra, igy mar egy szinte hasznalhato idozitom lett :)
Tetszik a kódod :) Látszik, h van C előéleted. (enum, logikai kifejezések használata meg ? : )
glezmen írta:

Kód: Egész kijelölése

     
    case ALARM:
      for (int i=0; i<8; ++i)
        digitalWrite(i, HIGH);
      for (int i=0; i<10000; ++i)
      {
          digitalWrite(speakerpin, !(i%2));
          delayMicroseconds(500);
      }
Szerintem még szebb lenne, ha for (int i=0; i<=10000; ++i) lenne a ciklus, akkor nem kéne negálnod a modulót, h a végén 0 legyen: digitalWrite(speakerpin, i%2);
glezmen írta: ha megjon a 9V-os elemes kis adaptercsatlakozom akkor akar mar onalloan is mukodokepes lesz :)

ezzel kapcsolatban meg egy kerdes:

ha az osszerakott kis projectemet (nem feltetlenul ezt :D) szeretnem 'veglegesiteni', hogy aztan onalloan hasznalhato legyen, akkor mi kell nekem?

eloszor is ugye nem akarom a komplett Arduino lapot felhasznalni. egy ilyen kis programocska elferne egy sokkal kisebb chipen is (most tekintsunk el a 10 felhasznalt pintol, mondjuk hogy 4-5 pin eleg). ha jol olvastam, akkor pl. az ATTiny45 is kepes lenne arra amire nekem kell
vagyis ha veszek egy ilyen kis IC-t, akkor gondolom kell hozza egy programozo. hogyan tudom az egyelore forraskod szinten mukodo kis programocskamat belegyomoszolni?
Többfelé lehet olvasni arduino kódról attiny-n, nem tudtam, h nem működik, be van építve nekem is az arduino 1.0.1 menübe, bár nem próbáltam. (Robi régebb óta foglalkozik arduinoval)

Lapátolj még rá 210 Ft-ot a tiny45 árára (625 Ft) és a mega8 (835 Ft) már tutira futtat minden Arduino kódot. AVR árak

Persze kérdés, h milyen hosszú a kód, azaz mibe fér bele, de a tied még kicsi:
Sketch mérete: 2 034 byte (maximálisan lehetséges: 30 720 byte)
glezmen írta:majd ha mar belegyomoszoltem, es mondjuk egy 'csupalyuk' panelen osszerakom a cuccost, akkor ugye kellene neki tap is. hogy tudom egyszeruen biztositani neki a szukseges betapot? felteszem egy 9V-os elem a megfelelo kis 'madzaggal' rajta elso lepesnek jo. de akkor kellene meg melle valami feszultsegszabalyzo fele is, ugye?
Ezt már Robi megválaszolta :)
Egyébként úgy olvastam, hogy a hüvelysoron a +5V pontra lehet tenni az elemet (bár akkor már a 3*1,2V-tal, azaz akksival is el kell mennie).
Válasz küldése