1

(0 ответов, оставленных в Технические вопросы)

Выдрал из китайского модулятора микросхему KT0803k. Это стерео трансмитер в FM диапазоне. Управляется по I2C шине.
Кто нибудь подскажет примерный скетч которым модно порулить ей с помошью Freeduino?

Как фридуиной померять частоту LC контура? Интерисует программная реализация.

3

(8 ответов, оставленных в Технические вопросы)

Delay поставил сразу после провеки кнопки - стало лучше. Но всеравно не четко срабатывает

4

(8 ответов, оставленных в Технические вопросы)

Почему то у меня вот этот блок работает непонятно

// проверка кнопки
void buttonread()
{
b = digitalRead(button);// читаем состояние кнопки
if (b == LOW) // если кнопка нажата
{
C=C+1; //нажали кнопку - увеличили на 1 хранилище
if (C>4){C=0;}//Для примера - 5 положений 0 1 2 3 4, если больше - очищаем хранилище
}
delay(50);//задержка для защиты от двойного нажатия, стоит ее подкорректировать под себя
Serial.println(C);
}
Запускаю программу - сразу по кнопке идет 0. По нажатию проскакивают 1-2-3. переменная С становится 3. Еще раз нажимаю. Переменная С == 4, Еще раз жму. Проскакивает 0-1-2-3. И С ==3.

5

(8 ответов, оставленных в Технические вопросы)

понял

6

(8 ответов, оставленных в Технические вопросы)

Вот тут не хочет из цикла выходить
Не пойму почему?

  for(int j = 0; j <= 15; j++) // цикл
  {
b = digitalRead(button);// читаем состояние кнопки
v = analogRead(pot);        //мигаем и меняем частоту
v /= 4;
digitalWrite(led10, HIGH);
digitalWrite(led11, LOW);
delay(v);
digitalWrite(led10, LOW);
digitalWrite(led11, HIGH);
delay(v);

7

(8 ответов, оставленных в Технические вопросы)

Кнопка подтянута к плюсу.
Спасибо. Сейчас попробую!

8

(8 ответов, оставленных в Технические вопросы)

Купил фридуину. Сижу изучаю.
Опыт программирования никакой. Но очень охота научиться.
Написал вот такой скетч

// переменные и порты
int led10 = 10;   
int led11 = 11;
int pot = 0;
int button = 2;
int v;// время мигания - регулирутся переменником
int b;// состояние кнопки
int s;
// установки
void setup()
{
pinMode(led10, OUTPUT);
pinMode(led11, OUTPUT);
pinMode(pot, INPUT);
pinMode(button, INPUT);

}
// работаем
void loop()
{
 
   digitalWrite(led10, LOW); //тушим светодиоды
   digitalWrite(led11, LOW); //тушим светодиоды
   b = digitalRead(button);// читаем состояние кнопки
if (b == HIGH) // если кнопка не нажата
{
 
  for(int shim = 0; shim <=255; shim +=5)
  {
  analogWrite(led11, shim);
  delay(30);
  }
    for(int shim = 255; shim >=0; shim -=5)
  {
  analogWrite(led11, shim);
  delay(30);
  }
   for(int shim10 = 0; shim10 <=255; shim10 +=5)
  {
  analogWrite(led10, shim10);
  delay(30);
  }
    for(int shim10 = 255; shim10 >=0; shim10 -=5)
  {
  analogWrite(led10, shim10);
  delay(30);
  }
}
else // иначе
{

  for(int j = 0; j <= 15; j++) // цикл
  {
  v = analogRead(pot);        //мигаем и меняем частоту
v /= 4;
digitalWrite(led10, HIGH);
digitalWrite(led11, LOW);
delay(v);
digitalWrite(led10, LOW);
digitalWrite(led11, HIGH);
delay(v);
}
}
}

Вроде все работает но есть одно но
Нажатие на кнопку воспринимается только при завершении цикла
   for(int shim10 = 0; shim10 <=255; shim10 +=5)
  {
  analogWrite(led10, shim10);
  delay(30);
  }
    for(int shim10 = 255; shim10 >=0; shim10 -=5)
  {
  analogWrite(led10, shim10);
  delay(30);
  }
а хотелось чтобы это происходило всегда.
И второй вопрос как сделать чтобы при нажатии кнопки 1 раз выполнялось какое либо действие - например мигал светодиод, а если еще раз нажать - то дркгое действие - например другой светодиод.