EEM-251 İleri Düzey Programlama
2022-2023 Güz Dönemi Ders 6
Analog okuma
Potansiyometrenin voltaj değerini tinkercad’de debug modunda görme.
void setup(){
pinMode(A3, INPUT);
}
void loop()
{
int adc_degeri;
float analog;
adc_degeri= analogRead(A3);
analog=(adc_degeri/1023.)*5;
delay(100);
}
Fotoresistör değerine göre LED yakma
Fotoresistör değeri 1.5k ise LED yansın.
void setup(){
pinMode(A2, INPUT);
pinMode(6, OUTPUT);
}
void loop()
{
int adc_degeri;
float analog;
adc_degeri= analogRead(A2);
analog=(adc_degeri/1023.0)*5;
if(analog>=3){
digitalWrite(6,HIGH);
}else{
digitalWrite(6,LOW);
}
delay(100);
}
Fotoresistör değeri artarken 1.5k olduğunda led yansın.
Fotoresistör değeri azalırken 1.2k olduğunda led sönsün.
void setup(){
pinMode(A2, INPUT);
pinMode(6, OUTPUT);
}
int aydinliktan_karanliga=1;
void loop()
{
int adc_degeri;
float analog;
adc_degeri= analogRead(A2);
analog=(adc_degeri/1023.0)*5;
if(analog>=3 && aydinliktan_karanliga==1 ){
digitalWrite(6,HIGH);
aydinliktan_karanliga=0;
}
if(analog<=2.17 && aydinliktan_karanliga==0){
digitalWrite(6,LOW);
aydinliktan_karanliga=1;
}
delay(100);
}
Sıcaklık sensörü kullanımı (TMP36)
verilen grafiğin fonksiyonu:
derece=analog/10.0-50;
void setup(){
pinMode(A4, INPUT);
}
void loop()
{
float derece;
int adc_degeri;
float analog;
adc_degeri= analogRead(A4);
analog=(adc_degeri/1023.0)*5*1000;
derece=analog/10.0-50;
delay(100);
}
map() fonksiyonu ile programlama
void setup(){
pinMode(A4, INPUT);
}
void loop()
{
float derece;
int adc_degeri;
float analog;
adc_degeri= analogRead(A4);
analog=(adc_degeri/1023.0)*5*1000;
derece=map(analog,500,1000,0,50);
delay(100);
}
Analog yazma (PWM sinyali)
pin 3, 9, 10, 11 490 Hz, pins 5, 6 980 Hz
void setup() {
pinMode(3, OUTPUT);
pinMode(6, OUTPUT);
}
void loop() {
analogWrite(3, 63);
analogWrite(6, 195);
}
LEDin kademeli parlaklığının artması ve azalması
void setup() {
pinMode(11, OUTPUT); // sets the pin as output
}
void loop() {
for(int i=255;i>=0;i--){
analogWrite(11, i);
delay(20);
}
delay(30);
for(int i=0;i<256;i++){
analogWrite(11, i);
delay(20);
}
}