Member baru? Bingung? Perlu bantuan? Silakan baca panduan singkat untuk ikut berdiskusi.

Welcome to Forum Sains Indonesia. Please login or sign up.

Maret 29, 2024, 08:24:02 PM

Login with username, password and session length

Topik Baru

Artikel Sains

Anggota
Stats
  • Total Tulisan: 139,653
  • Total Topik: 10,405
  • Online today: 231
  • Online ever: 1,582
  • (Desember 22, 2022, 06:39:12 AM)
Pengguna Online
Users: 0
Guests: 200
Total: 200

Aku Cinta ForSa

ForSa on FB ForSa on Twitter

program codevision untuk pemula (mohon bantuannya)

Dimulai oleh miftakhul, April 21, 2011, 06:18:08 PM

« sebelumnya - berikutnya »

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

miftakhul

mas, mbk saya pengen belajar mikrokontroller,kalo untuk pemula enaknya pakai chip & software yang mana ya..
saya pernah konsultasi ma temen untuk menggunakan chip atmega8535 & codevision untuk softwarenya..
dan setelah beberapa kali nyoba akhirnya alhamdullilah saya bisa membuat program codevision dengan bahasa C++ meskipun cuma led dan keypad...
nah karena itu bwt para suhu pemrograman mikrokontroller dengan bahasa C++,saya mohon didikannya supaya saya bisa menjadi lebih mahir lagi...
beberapa program yang belum dan ingin saya kuasai adalah:
1.membuat list program serta rangkaian ADC dengan ATmega8535
2.membuat list program untuk LCD tentunya juga dengan ATmega8535
3.membuat list program untuk mengatur frekuensi sebuah tegangan sehingga bisa untuk mengatur beberapa aplikasi seperti:
   a.mengatur suhu
   b. mengatur kecepatan motor DC
demikian dari saya,terima kasih buat suhu-suhu mikrokontroller yang sudi memberikan sedikit ilmunya buat saya,,,mohon maaf apabila ada kesalahan.. ;D ;D

N.A.T.O

klo ga salah codevision pake bahasa C deh bukan C++, trus untuk mengatur frekuensi tegangan mungkin lebih tepatnya PWM.

ni ada blog yg bahas mikro

[pranala luar disembunyikan, sila masuk atau daftar.]

tapi kayanya blog tersebut masih baru, tapi coba aja, lumayan buat belajar

miftakhul

oke mas terima kasih
tak coba dlu programnya terus mau saya modifikasi supaya bisa dipakai di percobaan saya

kalo program modifikasinya sudah jadi saya tampilin disini..
1x lg terima kasih mas..

miftakhul

mas sya kmrin lagi nyobain program adc dan pwm. dan hasilnya bisa..tp kok pas dilihat pake osiloscope digital (proteus) gelombangnya kok g kotak y..untuk gambrnya sudah sya lampirkan mas...
ne untuk listing programnya
/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
[pranala luar disembunyikan, sila masuk atau daftar.]

Project : adc
Version : 1.1
Date    : 22-Apr-2011
Author  :
Company :
Comments:


Chip type           : ATmega8535
Program type        : Application
Clock frequency     : 4.000000 MHz
Memory model        : Small
External RAM size   : 0
Data Stack size     : 128
*****************************************************/

float nilai_ADC;
char temp[16];

#include <mega8535.h>
#include <stdlib.h>

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>


#include <stdio.h>
#include <delay.h>

#define ADC_VREF_TYPE 0x40

// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}

// Declare your global variables here

void main(void)
{
// Declare your local variables here


PORTA=0x00;
DDRA=0x00;


PORTB=0x00;
DDRB=0x00;

PORTC=0x00;
DDRC=0x00;


PORTD=0x00;
DDRD=0xff;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x4D;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC Clock frequency: 750.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
SFIOR&=0xEF;

// LCD module initialization
lcd_init(16);

while (1)
      {
        nilai_ADC= read_adc(0);

        lcd_clear();
       
        lcd_gotoxy(1,0);
        ftoa(nilai_ADC,0,temp);
        lcd_puts(temp);
        delay_ms(500);

      };
}

miftakhul

hehe maaf mas postan yang sebelumnya itu program yang salah.Program itu program saya bwt nyoba ADC doang..
lo bwt program ADC to PWMnya dbawah ne mas..oh iya untuk ADCnya sya pke potensio dulu mas cz lum beli sensor LM35 hehhe
/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
[pranala luar disembunyikan, sila masuk atau daftar.]

Project :
Version :
Date    : 28-Apr-2011
Author  :
Company :
Comments:


Chip type           : ATmega8535
Program type        : Application
Clock frequency     : 4.000000 MHz
Memory model        : Small
External RAM size   : 0
Data Stack size     : 128
*****************************************************/

#include <mega8535.h>

#include <delay.h>

int potensio;

#define ADC_VREF_TYPE 0x00

// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_ms(100);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}


void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x30;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 62.500 kHz
// Mode: Ph. correct PWM top=00FFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xA1;
TCCR1B=0x04;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x02;
OCR1AL=0xFF;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AREF pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;


while (1)
      {
      // Place your code here
      potensio=read_adc(0);
      OCR1A=potensio;
      };
}


herlambang

Kutip dari: miftakhul pada April 28, 2011, 10:22:11 AM
mas sya kmrin lagi nyobain program adc dan pwm. dan hasilnya bisa..tp kok pas dilihat pake osiloscope digital (proteus) gelombangnya kok g kotak y..untuk gambrnya sudah sya lampirkan mas...
ne untuk listing programnya
.....................................

itu kan ente ngambil titik probenya pada beban.. ya pasti lah..
coba probe osiloskop ente pindahin pada input transistor.. pasti kotak :D
built-in double watchdog! ^^"   *Problem Solved*

Too Payz

Wew....
Simuatornya detail gitu yak..?
Itu pakai proteus...?  ???
Jadi pengen nyoba juga...  ::)   ::)

Probe Osiloskopnya kan ada 4 tuh..
Ya maksimalkan aja..
Pasang di beban 1, dan pasang di basis transistor 1, dll.

Kalo beban induktor memang tidak bisa kotak murni (atau sinus murni => untuk motor AC).
Karena ada arus dan tegangan induksi balik...
Makanya seperti itu sinyalnya.

Kalo saya si langsung tancap ke osiloskop benerannya..  ::)   ::)   ;D

miftakhul

wah beneran bisa..makasih buat mas herlambang...saya kemarin udah nyerah dengan program ini...cz sebenarnya mengatur pwm untuk heater bukan untuk motor..

oke to payz terima kasih atas sarannya..membantu banget...

miftakhul

terima kasih atas semua bantuannya...alhamdulillah saya sudah lulus sidang..terima kasih kepada para suhu bahasa pemrograman da mikrokontroller yang mau menyempatkan waktu untuk menjawab pertanyaan saya yang masih pemula ini...sekali lagi terima kasih...

tiger-tua

Kutip dari: miftakhul pada Agustus 16, 2011, 04:53:32 AM
terima kasih atas semua bantuannya...alhamdulillah saya sudah lulus sidang..terima kasih kepada para suhu bahasa pemrograman da mikrokontroller yang mau menyempatkan waktu untuk menjawab pertanyaan saya yang masih pemula ini...sekali lagi terima kasih...

selamat kang

tiger-tua

master semua gimana tuh caranya jalanin simulasi pake AVR di proteus?

coding program nya di mana ?