Покажи участието

От тук може да видиш всички публикации на този потребител.


Публикации - kalos

Страници: [1]
1
Здравейте,
ЧЕСТИТА КОЛЕДА!
любителски се занимавам с електроника и сега се мъча да си разкодирам един стар касетофон PIONEER DEH-M6356ZH,
или HONDA 631DA. Кода е записан на eeprom BR9010 .
Захранването ми е на 2 пин, а маса на 7 пин.

Записа с кода се намира в първите 8 клетки т.е. само те ми трябват.

Разполагам и с едно Ардуино за което се опитах да изчета паметта, но без успех. (използвах част от този код  http://www.windmeadow.com/node/53)

Какво бихте ми посъветвали?

2
Общ форум / От къде да сваля Virtual BreadBoard?
« -: Октомври 11, 2011, 11:59:15 am »
Здравейте,
нещо ми се скапа инсталирания VBB и се оказа, че са направили свалянето му от официалния сайт платено.
Дайте предложение от къде да си сваля търсения софтуер.

Поздрави!

3
Ардуино (Arduino) / DTMF управлениe
« -: Октомври 10, 2011, 10:47:10 pm »
Към момента стигам до тук:

int   Q1_PIN     = 2;
int   Q2_PIN     = 4;
int   Q3_PIN     = 7;
int   Q4_PIN     = 8;
int   StD_PIN    = 13;
int   ignRelay = 12;
int   engingeTemp = 0; //analog input
int   shiftPos = 1;  //analog input
int   startRelay = 3;
int   Relay1 = 1;
int   Relay2 = 5;
//,,,,,6,,,9,10,11,, free pins
int   tempNum;
char  tempChar;
int   inKey[3];    //array for incomming password store
int   myKey[3] = {1, 2, 3, 4}; //Password *1234#
int   haveStar;
int   tempCount;
void setup()
{
  pinMode(Q1_PIN, INPUT);
  pinMode(Q2_PIN, INPUT);
  pinMode(Q3_PIN, INPUT);
  pinMode(Q4_PIN, INPUT);
  pinMode(StD_PIN, INPUT);
  pinMode(ignRelay,OUTPUT);
  pinMode(startRelay, OUTPUT);
  pinMode(Relay1, OUTPUT);
  pinMode(Relay2, OUTPUT);
  haveStar=0;
  tempCount=0;
  Serial.begin(9600);
  Serial.println("Ready for DTMF...");
}

void wrongKey(){ //if the key is wrong
       inKey[]={-1, -1, -1, -1}; //make temp. var. for input key negative
      haveStar=0;
      tempCount=0; // make all temp. key 0
      Serial.println("Wrong KEY!!! Wait 10sec befor another try");
      delay(10000); //wait 10sec befor another try
      return;
}

void startEngine
{//how to start the engine :)
// if the shift isnt Neutral, do not close startRelay.
//if engine coolant temp. greater than 110 cut off the engine

}

void loop()
{
  while (digitalRead(StD_PIN) == 0); //waiting for StD signal
 
  if(haveStar==1)tempCount++;
 
  int q1= digitalRead(Q4_PIN);
  int q2= digitalRead(Q3_PIN);
  int q3= digitalRead(Q2_PIN);
  int q4= digitalRead(Q1_PIN);

  if (q4 == HIGH){
    tempNum = 1;  //make tempNum equal 1 if q4 is high
  }
  else{
    tempNum = 0;  // if q1 is low make it zero
  }
  if (q3 == HIGH) tempNum = tempNum + 2;  //add "2" to tempNum if q3 is high
  if (q2 == HIGH) tempNum = tempNum + 4;  //add "4" to tempNum if q2 is high
  if (q1 == HIGH) tempNum = tempNum + 8;  //add "8" to tempNum if q1 is high

  switch (tempNum) {
   
  case 10:
    tempNum = 0;
    break;
  case 11:
    tempChar = '*';
    break;
  case 12:
    tempChar = '#';
    break;
  case 13:
    tempChar = 'A';
    break;
  case 14:
    tempChar = 'B';
    break;
  case 15:
    tempChar = 'C';
    break;
  case 0:
    tempNum  = 16;
    tempChar = 'D';
    break;
  }
  Serial.println(tempNum);
  while (digitalRead(StD_PIN) == 1); //waiting for StD signal
  if (tempNum==11) // check for * (the password key must be like *1234#)
      {
        haveStar=1;
        tempCount=0;
       }
  if (tempCount==1) inKey[0]=tempNum; //write first digit
  if (tempCount==2) inKey[1]=tempNum; //write second digit
  if (tempCount==3) inKey[2]=tempNum; //write third digit
  if (tempCount==4) inKey[3]=tempNum; //write fourth digit
  if (tempCount==5) {
    if(tempNum==12) // check for # in the end of password
    {
      if (myKey==inKey) // check for correct key
      { Serial.println("Have correct key!");//have correct
          }
         else wrongKey(); //heve incorrect key
    else  //dont have # in the end of key
      wrongKey();
    }
  }
 
}



Все още не съм тествал написаното и дори не съм сигурен дали съм изразил правилно логически и технически :)

4
Ардуино (Arduino) / DTMF управлениe
« -: Октомври 10, 2011, 12:28:29 pm »
Здравейте,
от доста време насам съм започнал да изработвам устройство за управление чрез DTMF от общ характер. Като начало ще го разработя да си паля колата зимата :)
Идеята е освен самото запалване да може да се контролират 5-6 консуматора (вентилатор на парното, светлини и други).
За приемник и декодер на DTMF използвам чип 8870.

Поради недостига на свободно време е силно изразен в моето ежедневие, съм стигнал до "разкодирането" на постъпващите цифри и съм забил тук.

int   Q1_PIN     = 2;
int   Q2_PIN     = 4;
int   Q3_PIN     = 7;
int   Q4_PIN     = 8;
int   StD_PIN    = 13;
int   LED_PIN    = 3;
int   tempNum;
char  tempChar;
int   inKey[3];    //array for incomming password store
int   myKey[3] = {1, 2, 3, 4}; //Password
void setup()
{
  pinMode(Q1_PIN, INPUT);
  pinMode(Q2_PIN, INPUT);
  pinMode(Q3_PIN, INPUT);
  pinMode(Q4_PIN, INPUT);
  pinMode(StD_PIN, INPUT);
  pinMode(LED_PIN, OUTPUT);

  analogWrite(LED_PIN,255);
  delay(100);
  for(int i=255;i>=10;i--)
  {
    analogWrite(LED_PIN,i);
    delay(4);
  }

  Serial.begin(9600);
  Serial.println("Ready for DTMF...");
}


void loop()
{
  while (digitalRead(StD_PIN) == 0); //waiting for StD signal
  int q1= digitalRead(Q4_PIN);
  int q2= digitalRead(Q3_PIN);
  int q3= digitalRead(Q2_PIN);
  int q4= digitalRead(Q1_PIN);

  if (q4 == HIGH){
    tempNum = 1;  //make tempNum equal 1 if q4 is high
  }
  else{
    tempNum = 0;  // if q1 is low make it zero
  }
  if (q3 == HIGH) tempNum = tempNum + 2;  //add "2" to tempNum if q3 is high
  if (q2 == HIGH) tempNum = tempNum + 4;  //add "4" to tempNum if q2 is high
  if (q1 == HIGH) tempNum = tempNum + 8;  //add "8" to tempNum if q1 is high

  switch (tempNum) {
   
  case 10:
    tempNum = 0;
    break;
  case 11:
    tempChar = '*';
    break;
  case 12:
    tempChar = '#';
    break;
  case 13:
    tempChar = 'A';
    break;
  case 14:
    tempChar = 'B';
    break;
  case 15:
    tempChar = 'C';
    break;
  case 0:
    tempNum  = 16;
    tempChar = 'D';
    break;
  }

  Serial.println(tempNum);
  while (digitalRead(StD_PIN) == 1); //waiting for StD signal

 


}







Алгоритъма който желая да постигна е следния:

1.Въвеждане на парола (4 символа)
    Сверяване на паролата if(inKey==myKey)...
  1.1 Грешна парола (изчакване 20 сек)
  1.2 Вярна парола (продължаваме)

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

Поздрави, Калин

5
Електроника / Mosfet към микроконтролер
« -: Юни 21, 2011, 10:47:36 pm »
Благодаря съветите.
Модула няма да е за късите или дългите а за мъглите. Функция "изпрати ме до вкъщи" :)

6
Ардуино (Arduino) / 10bit-ов брояч?
« -: Юни 21, 2011, 10:40:21 am »
До колкото съм запознат с портовете на ардуиното в момента използвам всички пинове от PORTB и няколко от PORTC (за да не закачам сериината връзка).

zen благодаря ти за разяснението!

7
Ардуино (Arduino) / 10bit-ов брояч?
« -: Юни 19, 2011, 08:39:33 pm »
Ще съм ти благодарен, ако ми го разясниш.

8
Ардуино (Arduino) / 10bit-ов брояч?
« -: Юни 19, 2011, 06:30:17 pm »
Преди малко тествах ето този код:
/*
  Binary counter
  Counts up and prints result to LEDs, for practicing binary counting.

  This code is in the public domain.
*/

int startPin = 2;
int everyNthPin = 1;
int totalPins = 12;
int delayInms = 500;


void setup() {              
  for (int i = startPin; ( i / everyNthPin ) - startPin < totalPins;  i += everyNthPin) {
    pinMode(i, OUTPUT);  
  }
}

int expo( int base , int power) {
  int total = base;
  for( int times = power; times > 1; times--) {
    total *= base;
  }
  return total;
}

int i = 0;

void loop() {
  int carry = i;
  int currentbit = 0;
 
  int j = startPin;
  for (; ( j / everyNthPin ) - startPin < totalPins;  j += everyNthPin)  {
    currentbit = carry % 2;
    carry = carry / 2;
   
    if (currentbit > 0)  {
      digitalWrite(j, HIGH);
    } else {
      digitalWrite(j, LOW);
    }
  }

  i++;
  if (i >= expo(2 , totalPins) ) i = 0;
  delay(delayInms);
}

Работи, но нещо не ми е ясно как :)
дали ще може някой да ми разясни?
Благодаря предварително.

9
Ардуино (Arduino) / 10bit-ов брояч?
« -: Юни 19, 2011, 06:26:26 pm »
Тествах това което си написал, брояча работи и подава данните към сериния порт, но не се отразява на светодиодите.
tommyboy - в момента нямам налични, а програмата ми е да тествам една схема.
По-точно имам една охранителна ролетка с дистанционно (ето интегралната схема на дистацнионното http://www.honsitak-taiwan.com/list.files/list_pdf/hk526e-2.pdf) със постоянен код.
Идеята ми е да закача ардуиното към наличното ми дистанционно за да определя времето необходимо за отваряне на ролетката.
Към момента в дистанционното има 10битов "избирач" опеделящ ключа за защита.

10
Ардуино (Arduino) / 10bit-ов брояч?
« -: Юни 19, 2011, 01:48:26 pm »
Здравейте,
имам нужда от помощ.
Какъв е най-добрия начин за десетичен 10-битов брояч т.е. имам 10 светодиода на дигиталните изходи (4-13), брояча да започне от 0 и да добавя през 1 сек. по една еденица. Като моментното чсило да се "изписва" чрез светодиодите.
Подобно на това http://www.youtube.com/watch?v=t3Ol3Dxxl0s
но без но без 74HC595

Малко съм разсеян в момента, дано да стане ясно какъв им е въпроса.
Поздрави :)

11
Електроника / Mosfet към микроконтролер
« -: Юни 06, 2011, 11:50:26 am »
Точно на такъв отговор се надявах!!!
А дали има подобен елемент в DIP корпус?
иначе благодаря много за точния отговор?

За да не отварям нова тема ще пробвам да питам тук :)
Когато ардуино се използва в автомобил и искам да взема "сигнал" да кажем от мигачите т.е. сигнала е +12V какъв е начина за "поднасянето" му като високо ниво на някой от дигиталните входове?

12
Електроника / Mosfet към микроконтролер
« -: Юни 06, 2011, 10:24:57 am »
Здравейте,
решил съм да управлявам 2 крушки на 12V 55W(успоредно свързани) с ШИМ. Ще използвам ардуино като микроконтролер, но не съм решил все още какъв драйвър да използвам за крушките.
Към момента съм се загледал в IRF640 но си нямам идея как да го свържа с микроконтролера.

Та IRF640 удачен вариант ли ще е и някой може ли да ми даде съвет за допълнителни елементи (резистори, кондензатори, диоди) за свързването му.
Поздрави

13
Ардуино (Arduino) / Най-евтин чип за Arduino
« -: Април 21, 2011, 10:25:20 am »
Здравейте,
издирвам най-евтиния чип за който има bootloader на Arduino.
разгледах сайта на Arduino и това което разбрах е, че се използват главно 2 чипа ATMEGA168 и АТMEGA328 цената и на 2-та чипа е над 5лв.
Това което видях също е, че преди тези чипове се използвало ATMEGA8, но и там цената е близка до 5лв.

Та дали е има чип на който може да се качи платформата Arduino и да стрива 1-2лв?

Поздрави, Калин

14
Ардуино (Arduino) / Лиценз на Ардуино
« -: Април 21, 2011, 10:08:53 am »
Здравейте,
от съвсем скоро се занимавам с ардуино и съм възхитен него!
Тъй като се занимавам със изработка на щори ми се иска да разработя модул и механични елементи за управлението им.
На пазара са налични такива решения, но според мен цената им е безбожно завишена по неразбираеми от мен причини
(не може IR дистанционно с приемник и един ел, мотор да е над 200лв?!)
Та идеята ми е мога ли да използвам платформата за да създам такова нещо и да го продавам на цена близка до цената на елементите и материалите?

Страници: [1]