Генератор частоты. Помогите разобратся пинами
- Войдите на сайт для отправки комментариев
/*генератор на двух переменных резисторах с регулировкой
частоты и скважности.
10 кОм (жирный) - частота оборотов,выкл - 1023, вкл - 348
100 кОм (мелкий) - частота, выкл - 1023, вкл - 42
*/
int d0=0;
int d1=1;
int d4=4;
int d6=6;
int d7=7;
int d8=8;
int d9=9;
int d10=10;
int d11=11;
int d12=12;
int a2=A2;
int a3=A3;
int a4=A4;
int a5=A5;
int a6=A6;
int a7=A7;
int sv=3;/* выход генератора*/
int sv2=13;/*выход светодиода на плате для контроля монтажа*/
int din=5;/* выход на динамик*/
int resGOR=A0; /* резистор времени горения мелкий выкл - 1023, вкл - 42 */
int resGASH=A1;/* резистор скорости вращения жирный, выкл - 1023, вкл 348 */
int kn=2;/* Кнопка при нажатии которой будут считаны показания с резисторов*/
int GOR;/*переменная горения резистора,прям
сюда можно писать время, если в программе убрать строки 30-46
и сохранить файл, как экспериментальный перед работой с ним */
int GASH;/*переменная скорости резистора,прям
сюда можно писать время, если в программе убрать строки 30-46
и сохранить файл, как экспериментальный перед работой с ним */
void setup()
{
pinMode(d0, OUTPUT); /*подтягиваем остальные цифр входы*/
digitalWrite(d0, HIGH);
pinMode(d1, OUTPUT);
digitalWrite(d1, HIGH);
pinMode(d4, OUTPUT);
digitalWrite(d4, HIGH);
pinMode(d6, OUTPUT);
digitalWrite(d6, HIGH);
pinMode(d7, OUTPUT);
digitalWrite(d7, HIGH);
pinMode(d8, OUTPUT);
digitalWrite(d8, HIGH);
pinMode(d9, OUTPUT);
digitalWrite(9, HIGH);
pinMode(d10, OUTPUT);
digitalWrite(d10, HIGH);
pinMode(d11, OUTPUT);
digitalWrite(d11, HIGH);
pinMode(d12, OUTPUT);
digitalWrite(d12, HIGH);
/*pinMode(D13, OUTPUT);
digitalWrite(D12, LOW);*/
pinMode(a2, OUTPUT);
digitalWrite(a2,LOW);
pinMode(a3, OUTPUT);
digitalWrite(a3,LOW);
pinMode(a4, OUTPUT);
digitalWrite(a4,LOW);
pinMode(a5, OUTPUT);
digitalWrite(a5,LOW);
pinMode(a6, OUTPUT);
digitalWrite(a6,LOW);
pinMode(a7, OUTPUT);
digitalWrite(a7,LOW);
pinMode (sv, OUTPUT);/* иннициализация выхода генератора*/
pinMode (sv2, OUTPUT);/* иннициализация выхода светодиода на плате*/
pinMode (din, OUTPUT);/* иннициализация выхода для динамика*/
pinMode (kn, INPUT);/* иннициализация выхода для кнопки*/
Serial.begin(9600); /*включаем общение с монитором порта*/
analogReference(DEFAULT);/*обозначаем, что у нас
5-ти вольтовые входы и выходы */
/*analogReference(INTERNAL);обозначаем, что у нас
5-ти вольтовые входы и выходы, DEFAULT(5в), INTERNAL (1,1В)
или EXTERNAL - внешнее опорное напряжение). */
}
void loop()/* запускаем тело программы*/
{
int GA=analogRead(resGASH);/* считываем в переменную
GA показания резистора аремени гашения*/
int GO=analogRead(resGOR);/* считываем в переменную
GO показания резистора времени горения*/
if (digitalRead(kn)==LOW)/* если кнопка не нажата*/
{
GOR=map(GO,899,42,1000,5);/* считываем в переменную GOR значение GO
и масштабируем крайние показания резистора горения к
возможностям ардуино
предоставлять время задержки через delay (от 1 до 1000,
при этом лучше брать от 5, поскольку при 1 виснет */
GASH=map(GA,899,340,255,0);/* считываем в пепеменную GASH значение GA
и масштабируем крайние показания
резистора скорости вращения к возможностям ардуино
предоставлять время задержки через delay (от 0 до 255),
*/
}
if (GO > 850)/*если с резистора горения считано более 850,
(он выключен)*/
{
digitalWrite(sv,LOW);/* выход генератора уходит в низкий уровень*/
digitalWrite(sv2,LOW);/* гасим светодиод*/
digitalWrite (din, LOW);/*выключаеим динамик*/
}
else /* если с резистора горения считано менее 850*/
{
analogWrite(sv,GASH);/* выход генератора уровень считанный с GASH)*/
analogWrite(sv2,GASH);/* светодиод на плате загорается на уровень GASH*/
analogWrite(din, GASH);/* динамик пищит с шим-модуляцией GASH*/
delay (GOR);/* три вышеназванных позиции находятся во включённом
уровне на время, записанное в переменной GOR*/
digitalWrite(sv,LOW);/* выход генераторавходит в низкий уровень*/
digitalWrite(sv2,LOW);/* светодиод на плате гаснет*/
digitalWrite (din, LOW);/* динамик перестаёт пищать*/
delay (GOR);/* три вышеназванных позиции находятся в выключённом
уровне на время, записанное в переменной GASH*/
}
Serial.println(digitalRead(kn));
;
}
1. http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
2. Опишите, в чём Ваша проблема. Что работает не так, как Вы хотели ( и как Вы хотели?), Или Вы думаете, что кто-то будете изучать код и пытаться догадаться?
Извините за неграмотность! Я никак не могу определить какие из пинов входы и выходы. Я новичок
int d0=0;
int d1=1;
int d4=4;
int d6=6;
int d7=7;
int d8=8;
int d9=9;
int d10=10;
int d11=11;
int d12=12;
int a2=A2;
int a3=A3;
int a4=A4;
int a5=A5;
int a6=A6;
int a7=A7;
int sv=3;/* выход генератора*/
int sv2=13;/*выход светодиода на плате для контроля монтажа*/
int din=5;/* выход на динамик*/
int resGOR=A0; /* резистор времени горения мелкий выкл - 1023, вкл - 42 */
int resGASH=A1;/* резистор скорости вращения жирный, выкл - 1023, вкл 348 */
int kn=2;/* Кнопка при нажатии которой будут считаны показания с резисторов*/
Что вас здесь смущает? 3, 13, 5 - выходы, А0, А1, 2 - входы.