Передатчик с амплитудной модуляцией на Ардуино

Ссылка на код программы и описание проекта
Добрый день.


Вопрос:

  1. Не понятно где в коде программы описание (указание) что будет задействован контакт А0 ??? (Мне нужно задействовать А1)
  2. Можно использовать вместо AREF просто опорное напряжение 1.1 вольта???

По ссылкам здесь ходить не принято. Тебе нужна помощь, вот и выкладывай сам

/*This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/.*/

// OCR2 values for available Transmit frequencies: OCR2A/B = 8000/Ft[Khz] - 1
#define F_8MHZ 0
#define F_4MHZ 1
#define F_2666 2
#define F_2000 3
#define F_1600 4
#define F_1333 5
#define F_1143 6
#define F_1000 7
#define F_880 8
#define F_800 9
#define F_727 10
#define F_666 11
#define F_615 12
#define F_571 13
#define F_533 14
#define F_500 15

#define FRQ F_1600 //Replace OCR2 value for frequency here, if necessary

#define ANTENNA_1 PD3 //Arduino Nano/Uno Pin D3
#define ANTENNA_2 PB3 //Arduino Nano/Uno Pin D11


void setup() {
	//Timer 2: Carrier Frequency generation
	TCCR2A = bit(COM2A0) + bit(COM2B0); // Toggle OC0A (Pin 11) and OC0B (Pin 3) on Compare Match
	bitSet(TCCR2A, WGM21); // CTC Mode
	TCCR2B = bit(CS20); // No clock Prescaling
	OCR2A = FRQ;
	OCR2B = FRQ;
	bitSet(TCCR2B, FOC2B);  // Force Output Compare B; Toggle inverted
	
	//Timer 1: PWM
	pinMode(9, OUTPUT);
	TCCR1A =  bit(WGM11) + bit(WGM10); //Fast PWM, 10 Bit
	TCCR1B = bit(WGM12) + bit(CS10); // No Prescaling
  TIMSK1 = bit(OCIE1A) + bit(TOIE1);// Output Compare A Match and overflow Interrupt Enable
	//TCCR1A += bit(COM1A0) + bit(COM1A1); //Toggle Pin 9 on compare match

	//ADC Settings
	ADMUX = bit(REFS1) + bit(REFS0); //Reference internal 1.1V
	ADCSRA = bit(ADEN) + bit(ADSC) + bit(ADATE); //Auto Trigger enable, free running
	ADCSRA += bit(ADPS2) + bit(ADPS1); //Divide by 64 -> 18.5k Sample rate
	DIDR0 = bit(ADC0D);
}

/* Overflow Interrupt*/
ISR(TIMER1_OVF_vect) {
	uint16_t adc = ADC;
	OCR1A = adc;
	bitSet(DDRD, ANTENNA_1); // timer 2 outputs on
	bitSet(DDRB, ANTENNA_2);
}

/* Output Compare A Match Interrupt */
ISR(TIMER1_COMPA_vect) {
	bitClear(DDRD, ANTENNA_1); // timer 2 outputs off
	bitClear(DDRB, ANTENNA_2);
}

void loop() 
{
}

ADMUX в том числе выбирает канал АЦП, в данном случае канал = 0
Если надо A1 то
ADMUX = bit(REFS1) + bit(REFS0) + 1;
Но данный скетч не позволяет в дальнейшем использовать analogRead на любых выводах. Любой вызов analogRead может привести к сбою.

Дополнение. Как ниже написал ЕвгенийП надо изменить еще одну строку
DIDR0 = bit(ADC1D); // Вместо DIDR0 = bit(ADC0D);

Благодарю.
Можно использовать вместо AREF просто опорное напряжение 1.1 вольта???
Вообще не использовать AREF ???

Ваш вопрос не понятен. Опорное напряжение это и есть AREF.
В данном случае выбрано встроенное (внутреннее) 1.1 В

Опорное напряжение для резистивного делителя?
Т.е. с контакта 18 поступает на сопротивление 10 килоом 1.1 вольта?

А можно сопротивление отсоединить от контакта 18 и подать на него 1.1 вольта ?

Да в данном случае с AREF подается 1.1 В (примерно) на делитель.
На отсоединенное от контакта 18 (AREF) сопротивление можно подавать 1.1. в.
К контакту AREF можно подключаться (если надо) только через сопротивление.

А можно использовать сопротивления другого номинала? не 10 килоом?
например два по 5.1 килоома?

Это не вопрос, но я так догадался, что Вас интересует, где это указано? В строка №№ 44 и 47. Только непонятно, что Вам это даёт, если Вы этого не видите.

В добрый путь! Строки, которые нужно изменить я указал.

Да, ради Бога. Неясно зачем, но если хочется … Только подвирать будет, т.к. Ваше опорное не будет точно совпадать в внутренним. Можно, конечно, сделать, чтобы всё работало от Вашего опорного, но это код менять надо (опять же в строке №44).